Windows 7、IIS 7.5.7600.16385 を使用しており、現在 .NET 4.6.1 がインストールされており、MVC アプリケーションがあります。
数日前、アプリケーションで奇妙な動作が発生しました。残念ながら、Application_Start 内で呼び出されるサービスは利用できず、未処理の例外が内部でスローされました。私の予想される動作は、 Application_Start() が次のリクエストで再度呼び出されるか、次のリクエストが Application_BeginRequest() で直接開始されることでした。.
残念ながら、次の結果が得られます。
Application_Start() 内で例外が発生した場合、最初のリクエストでエラー 500 が発生します。それで大丈夫です。
この後、他のすべてのリクエストは、最初のリクエストでスローされる例外を返します。ローカル環境でタイムスタンプを使用して例外をスローすることで確認しました。各応答には、最初の要求からのタイムスタンプを含む例外が含まれており、HTTP 応答は依然として 500 です。どの URL が呼び出されるかに依存しません。私たちのコードではブレークポイントはヒットしませんが、IIS ログにはリクエストが表示されます。答えはどこかにキャッシュされているようです。
アプリケーションは未定義の初期化ステータスのリクエストに応答しないため、個人的にはこの動作が気に入っています。
そして、はい、Application_Start() 内で他のサービス リソースを呼び出すことは最善のアイデアではないことを知っており、おそらく次回は削除します :)
私の質問:
Application_Start() で例外がスローされた場合の動作を構成することは可能ですか?
この動作がいつ変更されたか、またはすでに長い間存在していることを誰かが知っているのでしょうか?