2

IHttpModule利用可能なすべてのイベントを処理し、ファイルに記録するカスタムがHttpContext.Current.Response.StatusCodeあります。

Myweb.configには他のモジュールが含まれていない<httpModules>ため、すべてのエラーがブラウザーに昇格されます。

ブラウザには 404 が表示されますが、ログ ファイルには 200 個の (Ok) エントリがあり、1 つの 404 ではありません。

私は何が欠けていますか?


アップデート

で終わる URLにはイベントにStatusCode があり.aspxますが、たとえば で終わる Url は、すべてのイベントでStatusCodeを表示しますか?!404PreSendRequestHeaders.pdf200

4

3 に答える 3

0

私は同じ問題を抱えていましたが、HttpException のハンドラーで現在の例外をキャストすることで解決しました。次に、Http エラー コードを取得できます。

Exception exception = HttpContext.Current.Server.GetLastError();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
    int httpCode = httpException.GetHttpCode();
}

ソース: http://www.digitallycreated.net/Blog/57/getting-the-correct-http-status-codes-out-of-asp.net-custom-error-pages

それが役に立てば幸い :)

于 2011-10-05T22:06:15.670 に答える
0

404 がある場合、モジュールは実際に実行されていますか?

モジュール内のブレークポイントを使用してデバッガーをアプリケーションにアタッチしましたか? 存在しない .aspx ページを要求すると、デバッガーはヒットしますか? 存在しないファイルまたはディレクトリを要求するとヒットしますか?

IIS の設定によっては、ASP.NET がこれらのエラーを認識していない可能性があります。たとえば、somepage.html や missing.gif の要求を処理できません。

于 2009-06-09T10:00:58.030 に答える