HTTP ステータス コード (200、404、500 など) が IIS パイプラインで最初に利用できる場所に関する情報を誰かが持っていますか? エラー処理の目的で一連の http モジュールとハンドラーを作成しようとしていますが、値を取得するために要求/応答を複製したくありません。
1 に答える
ここでイベントを見て、好きなものを選んでください :)
http://msdn.microsoft.com/en-us/library/ms693685(v=vs.90).aspx
理論的には、ステータス コードはパイプライン内の任意の http モジュールによって変更できます。購読しているイベントによって異なります。
たとえば、承認モジュールはOnAuthorizeRequest
メソッドをサブスクライブし、その時点でそのロジックを実行し、必要に応じてステータス コードを変更することができます。別のケースでは、従来の ASP アプリがハンドラーとして実行される可能性があり、ステータス コードが 500 であるかどうかはOnPostExecuteRequestHandler
. 最後に、ロギング モジュールのエラーによって 500 が生成される場合がありますが、これは要求処理がほぼ終了するまで発生しません ( OnLogRequest
) 。
さらに複雑なことに、一部のハンドラーは実行中にバッファーされていないデータを吐き出す可能性があるOnSendResponse
ため、特定の順序ではないイベントのいずれかに含まれている可能性があり、ステータス コードが応答間で変更されている可能性があります。
したがって、これに効果的にアプローチするためには、何を達成しようとしているのかに大きく依存します。詳細をお知らせいただければ、解決策を策定できるかもしれません。