Azure App Service スタックトレース表示

2023/08/19
★★

Azure App Service にディプロイしたら動かない

Azure App Service にディプロイしたら、動かないってことありますよね。ローカル環境では、動いてたのに。

このページは現在機能していません

このページは現在機能していません。現在、この要求を処理できません。HTTP ERROR 500。と、言われても。

開発者例外ページ

一方、ローカルの開発環境では、ブラウザにスタックトレース等のエラーの詳細が出力されます。原因の特定が簡単です。が、Azure App Service 上ではエラーの詳細が、確認できなくて、原因の特定に時間がかかってしまう。

このブラウザにエラーを出力するものですが、Developer exception page(開発者例外ページ) というものです。

この開発者例外ページが出力される条件として、「開発環境で実行している。」というものがあります。

開発環境で実行していることを定義するためには、環境変数 ASPNETCORE_ENVIRONMENTDevelopment を設定します。

ローカル開発環境での launchSettings.json による設定は、以下の記事にあります。

Azure App Service での ASPNETCORE_ENVIRONMENT の設定

Azure Portal で、対象の App Service を開いて、[設定] - [構成] を選択。

[New application setting] から、Name に、ASPNETCORE_ENVIRONMENT Value Development を設定し、[OK] を選択します。[Save] を選択し、設定を保存します。

これで、エラーが発生すると、開発者例外ページが表示されるようになります。 開発者例外ページ

本番環境では?

開発環境の設定は、もちろん、開発環境向けの設定なので、本番環境には適していません。開発環境用に用意した Azure App Service で利用しましょう。

本番環境では、ログ ストリームでエラーを確認するのが良いと思います。

ただし、デフォルトでは、エラーログが出力されないため、Azure Portal で、App Service を開いて、[監視] - [App Service ログ] を選択し、ログを有効化します。

設定方法は、以下にあります。Azure App Service on Linux と Azure App Service on Windows では、設定項目に違いがあります。

これで、[監視] - [ログ ストリーム] を参照すると、ログが確認できます。

以上、参考までに。

コメント (0)

コメントの投稿