Trace.axd возвращает 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 ответ
Удалите обработчик трассировки HTTP в файле Web.config:
<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.