web-dev-qa-db-ja.com

Azure上のAsp.Net Core 2.0の結果は502.5

Azureに配置されたAsp.Net Core 1.1で開発された小さなWebアプリがあり、うまく機能します。 Asp.Net Core 2.0を使用するようにプロジェクトを移行し、Azureにデプロイしようとしました。展開はうまくいきましたが、サイトを開くと、502.5エラーが表示されます。 Azureログストリームを確認すると、次のエラーが表示されます。

このエラーは、CGIアプリケーションが有効なHTTPヘッダーセットを返さない場合、またはプロキシまたはゲートウェイが親ゲートウェイに要求を送信できなかった場合に発生します。 CGIの問題でない場合は、ネットワークトレースを取得するか、プロキシサーバーの管理者に連絡する必要があります。

私の開発マシンでも同じコードでうまく機能することは言うまでもありません。 Entity Framework Core 2.0も使用していることに注意してください(ただし、Azureでデータベースの作成を無効にしたのは、原因ではないかどうかを確認するためです)。

詳しくは、ターゲットフレームワークの設定を「netcoreapp2.0」に変更し、NuGetパッケージ「Microsoft.AspNetCore.All」を使用して、1.1から2.0に移行しました。念のため、パブリッシュプロファイルも削除して、再作成しました。

Asp.Net Core 2.0がAzureでまだ利用できない可能性はありますか?私はAsp.Net Coreにかなり慣れていないので、Azureで新しいリリースがいつ利用可能になるかわかりません。

[〜#〜] edit [〜#〜]

Natemcmasterによって提案されたデバッグコンソールを介してドットネットCLIでアプリを実行しようとすると、次の問題が発生しました。

未処理の例外:System.IO.FileLoadException:ファイルまたはアセンブリ 'Microsoft.AspNetCore.Hosting.Abstractions、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = adb9793829ddae60'をロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

私はデスクトップにDLL=をダウンロードし、Dot Net Peakでバージョンを確認しました。実際にDLLは1.1.2です。ただし、Visual Studioで直接公開するので、Visual StudioまたはNugetの問題ですか?

32
ssougnez

問題は、最初、私のWebアプリがWebアプリケーションの「wwwroot」フォルダー内のすべてのDLLをデプロイする.net core 1.1を使用していたという事実に起因していました。 asp.net core 2.0では、グローバルストアからDLLが選択されるため、これは行われません。ただし、Visual Studioは発行前に宛先フォルダーをクリーンアップしないため、終了しました1.1 DLLが私のwwwrootにあった状況で、ウェブサイトはストアフォルダーの2.0の代わりにこれらのものを選択していました。

詳細については、こちらをご覧ください: https://github.com/Azure/app-service-announcements-discussions/issues/2#issuecomment-31381655

20
ssougnez

他の人は、これが起こっている理由を説明しました。私は別の、おそらく間違いなく問題の解決策を提供したいと思います。

設定を変更するだけで、既にAzureにあるファイルを削除できます。以下を参照してください。

publish project settings

publish project settings option

16
Sam

ポータルでログファイルを確認するか、D:\home\LogFilesにリモートでアクセスします。

時々、ログには何が問題なのかが示されないことがあります。さらに調査するもう1つの良い方法は、デバッグコンソールからASP.NET Coreアプリを起動してみることです。共有フレームワークバージョンがない場合、または別の起動エラーがある場合、これはデバッグコンソールからよりわかりやすくなります。

に行く

https://(your web site name here).scm.azurewebsites.net/DebugConsole/

あなたのサイトはD:\home\site\wwwrootにあります。次を実行して起動できます:

cd D:\home\site\wwwroot
dotnet MyWebApp.dll

それでもアプリの起動に失敗する場合は、D:\home\site\wwwroot\web.configが使用可能で、ASP.NET Core Moduleを使用するように構成されていることを確認してください。 https://docs.Microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module

6
natemcmaster

私の場合、プロジェクト名にスペースがあることが原因でした。

  • すぐにスペースを追加できます。公開=> 502.5。
  • スペースを削除して、公開=>開始してください。

信じられないが、私はすぐに上記と重複している。

@ Sam's Answer ごとに「宛先の追加ファイルを削除」も使用します

2
ttugates

私の場合、その時点でAppServiceが2.0.0-preview2-006497をサポートしていたのに問題が発生しましたが、ビルドで使用された2.0.0-preview3-006890がインストールされていました。そこで、global.jsonプレビュー2 SDKを使用し、その後動作しました

1
Andrii

https://github.com/Azure/app-service-announcements/issues/14 を参照してください。「ロールアウトは6月30日金曜日までに完了する予定です。」

1
Ivan Josipovic

これは、ASP.NET Coreのバージョンがサーバー上で一致しない場合に発生します。

最も簡単な解決策は、アプリを自己完結型としてデプロイするように設定を変更することです。そのため、Azureがフレームワークのバージョンと一致するかどうかは関係ありません。また、 @ Sam で説明されているように、Azureに既にあるファイルを削除して、アップグレード時に問題が発生しないようにします。

enter image description here

0
Cobus Kruger

これがいつか誰かを助けることができるかどうかはわかりませんが、私の場合は、:Microsoft.AspNetCore.All 2.0.5を使用していました

Microsoft.AspNetCore.All 2.0.3への怒りは私の問題を解決します

0
Thibault Gandon