Trace.axd返回YSOD而不是自定义错误

时间:2012-11-20 02:36:55

标签: asp.net iis web-config stack-trace ysod

这正式让我疯狂......我在IIS7上有一个运行ASP.Net 3.5的网站。跟踪已关闭,我配置了自定义错误,但是当我访问www.mysite.com/trace.axd时,我收到标准的ASP.Net YSOD而不是我的自定义错误页面。返回的状态是500,但有些更奇怪,因为使用Cassini或Dev Server状态为403。

所以我的问题是如何在活动框中返回我的自定义错误页面而不是标准ASP.Net YSOD?

自定义错误配置:

<customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" path="~/404.aspx" redirect="~/404.aspx" responseMode="ExecuteURL" /></customErrors>

跟踪设置:

<tracing>
            <traceFailedRequests>
                <add path="*.aspx">
                    <traceAreas>
                        <add provider="ASP" verbosity="Verbose" />
                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
                        <add provider="ISAPI Extension" verbosity="Verbose" />
                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions timeTaken="00:00:00" statusCodes="500" />
                </add>
            </traceFailedRequests>
        </tracing>

非常感谢任何帮助,如果您还有其他需要,请告诉我们。)

1 个答案:

答案 0 :(得分:1)

删除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现在为我们提供了404 Not Found而不是500 Internal Server Error。