ASP.NET MVC アプリでは、302 ではなく 404、500 などの実際の HTTP ステータス コードを返したい場合、既定のオプションは<system.web><customErrors>
うまく機能しません (Web フォームでのみ機能するため)。
どこでどのように例外をキャッチしても (Global.asax やグローバル エラー ハンドラーなど)、その例外を "飲み込む" (例: を使用Server.ClearError()
) 場合でも、クライアントにレンダリングされる内容を完全に制御できますが、既定のログ記録は失われます ( Windows イベント ログに書き込まれる Web イベント)。この種のロギングは私にとっては問題なく機能します。非常に堅牢であり、とにかくイベント ログを監視しているので、まさにロギングに必要なものです。
たとえば、Global.asax で、ASP.NET に現在のエラーを Web イベントとして記録させ、エラーをクリアするように強制することはできますか?
ASP.NET 4 と IIS7.5 統合モードを必要とするソリューションは問題ありません。
この種の動作するオプションの 1 つは の使用ですが、これはではなくで<system.webServer><httpErrors>
のみ動作します。これは、ASP.NET が を自動的に設定するように見えるためです。また、アプリケーションのいくつかのコントローラーがカスタム エラー ページ (XML )。existingResponse="Replace"
Auto
TrySkipIisCustomErrors=true
Auto
事前にどうもありがとうございました!