このアプリケーションには、かなり単純なログフックのセット(MVCおよびAPIコントローラーのIExceptionFiltersとApplication_Error()の追加のキャッチオール)がありますが、それらのいずれもトリガーしないエラーのカテゴリ全体があります。WebAPI自体の内部から、または内部で使用されるもの(依存関係リゾルバーによって作成されるクラスの型初期化子など)から例外がスローされた場合、取得するのは500応答がクライアントに送信されることだけです。
エラーの詳細をキャプチャするために私が見つけた唯一の方法は、HttpConfiguration.IncludeErrorDetailPolicyを使用して、エラーの詳細を出力するようにアプリケーションを構成することです-ただし、エラーの詳細を世界中にブロードキャストすることは悪い習慣です。これを完全にオフにするか、条件付き(たとえば、ローカルのみ)に設定します。ただし、これは、アプリケーションが実行されているサーバーにリモートで移動し、応答を検査できるツール(IEやGoogleなど)を使用してAPIをローカルで呼び出すことを意味します。 Chrome)何が起こっているのかを理解するために。
私はここで同様の流れで別の質問を見ましたが(ここ)、提示された解決策(DelegatingHandlerを使用して応答を検査する)は私たちのニーズを満たしていないと思います。フックできるイベント、使用できる拡張ポイント、または発生した実際の例外をキャプチャするためのそのようなものは本当にありませんか?
(余談ですが、IncludeErrorDetailPolicyをAlwaysに変更し、他のスレッドで提示されたソリューションを使用して、MessageHandlerでエラーの詳細をキャプチャし、ログに記録して、クライアントに送信される応答から手動でスクラブすることができると思いますが、厄介なハックになります。)
考え?:/