Asp.netコア1.1をasp.netコア2にアップグレードしました。ローカルサーバーで正常に動作しますが、AzureでホストされたWebアプリにデプロイしようとすると、次のエラーが表示されました。
アプリケーションの起動中にエラーが発生しました。 .NET Core
4.6.00001.0 X86 v4.0.0.0 | Microsoft.AspNetCore.Hostingバージョン2.0.0-rtm-26452 | Microsoft Windows 6.2.9200
何か案は?
私は問題を自分で解決することができたので、この解決策が誰かを助けることを願っています。
最初に、Azureサーバー上にログフォルダーを設定し、詳細な問題を見つけました。 SQLのデータベースの変更をいくつか忘れてしまいました。データベースの変更を更新して、今は正常に動作しています。
アプリのアプリ設定にASPNETCORE_DETAILEDERRORS = trueを追加し、再起動して、次にURLを読み込むときに詳細なエラーを確認してください。それはあなたがそれを修正するのに役立ちます。
たとえば、私の場合のエラーは、Key VaultにアクセスしてストレージアカウントとCosmos DBキーを取得するように構成されたAPIアプリの管理IDがなかったことです。スタートアップを使用して構成済みのストレージオブジェクトとcosmos dbオブジェクトを注入したため、アプリを起動した瞬間に失敗しました。
注–トラブルシューティングが完了したら、パフォーマンスが低下するため、これをオフにする必要があります。
したがって、web.configのaspNetCore要素は次のようになります。
ASPNETCORE_DETAILEDERRORS = true
を有効にすると、詳細を取得できます。
azureダッシュボードに移動-> App Service
アプリケーションの設定(左側のサイドバー)->下にスクロールしてconfiguration設定のキーと値のペアです。上記を入力します。 Webアプリを再起動します。
Program.cs
でDetailedErrorsKey
を有効にして、何が起こっているのかを把握できるようにします。
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
公開された実行可能ファイルからアプリを起動することで、このエラーの例外を発見できました。
これをローカルで試すには、Webプロジェクトを右クリックし、[公開]をクリックしてから、フォルダーに公開します。プロジェクトと同じ名前のフォルダーに実行可能ファイルがあるはずです。それを実行すると、コンソールに例外が表示されるはずです。
コマンドを実行してアプリケーションを実行してみてください
dotnet myapplicationname.dll
これにより、起動エラーがスローされ、エラーを絞り込むのに役立つ場合があります。