3

Azure アプリを起動して実行していますが、さまざまな要求で 500 エラーが発生します。問題が何であるかを正確に知らせるためにサーバーから返される他の詳細はありません。スタック トレースもエラー メッセージもありません。サーバーから返される唯一のものは、エラーが発生したことを示す http ヘッダーです。

少し調べてみましたが、探しているエラーの詳細を取得する方法が見つからないようです。ロギングを有効にすることを提案する記事を見たことがありますが、1) その方法、2) それらのログ ファイルがどこにあるのか、3) そのログ ファイルにアクセスする方法がわかりません。ロギングを有効にするためにアプリケーションに大量のコードを追加するようにという投稿を見たことがありますが、私が探しているのはエラー メッセージと 500 エラーからのスタック トレースだけです。その情報を表示するには、アプリに大量のコードを追加する必要がありますか? そうでない場合、どうすれば取得できますか?

ありがとう!
クリス

4

2 に答える 2

1

最良の長期的な解決策は、Azure Diagnostics を有効にすることです。これは、あなたが言及しているものだと思います。簡単な解決策が必要な場合は、エラーをファイルにログ出力してから、RDP でロール インスタンスにログインしてエラーを表示できます。これは、独自のデータセンターのサーバーで行うことと非常によく似ています。

ログは好きなように作成できます。私は log4net と RollingFileAppenders を使用して成功しました。ログファイルのパスを "\logs\mylog.txt" のように設定すると、ログは VM の E: ドライブに配置されます。エラーをキャプチャしてログに書き込むには、アプリのどこかにコードが必要になることに注意してください。通常は、Global.asax のグローバル エラー ハンドラーが適しています。

また、ロール インスタンスへの RDP アクセスを有効にする必要があります。その方法を詳しく説明している記事はたくさんあります。これが 1 つです。

ロールがリサイクルまたは再作成されるとログが消える可能性があるため、これは一般的に推奨される方法ではありません。また、これらすべての異なるサーバーを監視するためにログに記録するのも面倒です。

もう 1 つの警告 - 500 エラーは、web.config の障害が原因である可能性があります。その場合、世界中のすべてのアプリケーション レベルのエラー ログが役に立ちません。そのため、web.config が有効であることを確認し、サーバーに RDP 接続している間に Windows イベント ログも確認してください。

于 2012-11-28T02:27:08.990 に答える