5

私の本番環境では、すべてのリクエストを/trace.axdにリダイレクトして、HTTP 404を返したいと思います。現在、デフォルトのHTTP500が返されています。これにより、分析ツールにあらゆる種類の不要なノイズが発生します。環境は、IIS7.5上のASP.NET4.0Webフォームです。

4

2 に答える 2

6

Web.config ファイルでトレース HTTP ハンドラーを削除します。

  <system.webServer>
    <!-- remove TraceHandler-Integrated - Remove the tracing handlers so that navigating to /trace.axd gives us a 
         404 Not Found instead of 500 Internal Server Error. -->
    <handlers>
      <remove name="TraceHandler-Integrated" />
      <remove name="TraceHandler-Integrated-4.0" />
    </handlers>
  </system.webServer>

/trace.axd に移動すると、500 Internal Server Error ではなく 404 Not Found が表示されるようになりました。

于 2015-03-04T12:27:43.517 に答える
2

最初に頭に浮かぶのは、次のようにBeginRequestイベントをインターセプトすることglobal.asaxです。

protected void Application_BeginRequest()
{
    // assuming that in your production environment debugging is off
    if (!HttpContext.Current.IsDebuggingEnabled && Request.RawUrl.Contains("trace.axd"))
    {
        HttpContext.Current.Response.StatusCode = 404;
        HttpContext.Current.Response.End();
        // or alternatively throw HttpException like this:
        // throw new HttpException(404, "");
    }
}
于 2013-01-03T22:08:50.033 に答える