web-dev-qa-db-ja.com

asp.netコアアプリをAzureにデプロイした後のエラー

Asp.netコアアプリを初めてAzureにデプロイして実行した後、次のエラーが発生しました。

エラー。リクエストの処理中にエラーが発生しました。開発モード開発環境にスワップすると、発生したエラーに関する詳細情報が表示されます。

デプロイされたアプリケーションで開発環境を有効にしないでください。エンドユーザーに例外からの機密情報が表示される可能性があります。ローカルデバッグの場合、ASPNETCORE_ENVIRONMENT環境変数をDevelopmentに設定し、アプリケーションを再起動することで、開発環境を有効にできます。

Visual Studioでパブリッシュするときにデバッグモードとリリースモードを試し、デフォルトの移行を選択し、接続文字列も持っていることを確認したことに注意してください。可能であれば、示されているように開発モードを有効にする方法を教えてください、またはエラーをさらに説明できますか?ありがとうございました

編集:受け取った提案に従って、Cloud Explorerのログで次のことがわかりました:

Msvsmonは「127.0.0.1:50867」という名前のサーバーを起動できませんでした。次のエラーが発生しました:リモートデバッガーのインスタンスがこのコンピューターで既に実行されているか、別のプロセスが指定されたTCP/IPポートに既にバインドされています。

10
Techy

ちょうどそれは明らかです-それでもASP.NET Core 2.0で登場するもの-そして@Techyが述べたように-はAzureにあります。 Azureに移動し、Webアプリをクリックします。[アプリケーション設定]セクションに移動し、[ASPNETCORE_ENVIRONMENT]と[開発]を追加します。

Azure Portal

コメントしてくれてありがとう。 Azureポータルのアプリケーション設定に次のキーを追加することで、エラーの詳細を見つけることができました:ASPNETCORE_ENVIRONMENT with value:Development

エラー自体に関する新しい質問を作成しました: InvalidOperationException:アセンブリで 'UserSecretsIdAttribute'が見つかりませんでした

ありがとうございました

4
Techy

これは、ユーザーがアプリから機密の例外情報を取得しないように、プロダクションモードで使用されるセキュリティ対策です。

ASPNETCORE_ENVIRONMENTを「Production」から「Development」に変更できます。

別のオプションは、Startup.csのConfigure()メソッドのコードを変更することです。このメソッドが検証を行うのは次のとおりです。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
    }

    ...
}

推奨されませんが、この状態を解消できます。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseDeveloperExceptionPage();
    ...
}
0
balon