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の問題ですか?
問題は、最初、私の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
ポータルでログファイルを確認するか、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
私の場合、プロジェクト名にスペースがあることが原因でした。
信じられないが、私はすぐに上記と重複している。
@ Sam's Answer ごとに「宛先の追加ファイルを削除」も使用します
私の場合、その時点でAppServiceが2.0.0-preview2-006497をサポートしていたのに問題が発生しましたが、ビルドで使用された2.0.0-preview3-006890がインストールされていました。そこで、global.json
プレビュー2 SDKを使用し、その後動作しました
https://github.com/Azure/app-service-announcements/issues/14 を参照してください。「ロールアウトは6月30日金曜日までに完了する予定です。」
これは、ASP.NET Coreのバージョンがサーバー上で一致しない場合に発生します。
最も簡単な解決策は、アプリを自己完結型としてデプロイするように設定を変更することです。そのため、Azureがフレームワークのバージョンと一致するかどうかは関係ありません。また、 @ Sam で説明されているように、Azureに既にあるファイルを削除して、アップグレード時に問題が発生しないようにします。
これがいつか誰かを助けることができるかどうかはわかりませんが、私の場合は、:Microsoft.AspNetCore.All 2.0.5を使用していました
Microsoft.AspNetCore.All 2.0.3への怒りは私の問題を解決します