У меня есть веб-формы C# ASP.NET 4,0 веб-приложения, которые используют Маршрутизацию для URL по некоторым причинам, пользовательские ошибки, определенные в system.web разделе моего web.config, полностью проигнорированы, и это отступит ошибки IIS.
Это полностью проигнорировано
<system.web>
<customErrors mode="On">
<error statusCode="500" redirect="~/Error" />
<error statusCode="404" redirect="~/404" />
<error statusCode="403" redirect="~/Error" />
</customErrors>
</system.web>
Эта часть вступает во владение
<system.webServer>
<httpErrors>
<!--<clear />-->
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" subStatusCode="-1" path="/App1/404" responseMode="Redirect" />
<error statusCode="500" prefixLanguageFilePath="" path="/App1/Error" responseMode="Redirect" />
</httpErrors>
</system.webServer>
Это было бы незначительным неудобством за исключением того, что фактом оно отступает к собственному компоненту IIS вместо моего приложения, оно полностью обходит Elmah, регистрирующий мои 404 исключения правильно.
Править: Только для предотвращения любых предложений такого я только добавил httpErrors конфигурацию после того, как customErrors прекратил работать так, у меня будет что-либо.
Чтобы отключить сообщения об ошибках IIS, вы должны установить
Response.TrySkipIisCustomErrors = true;
в вашей странице ошибок. После этого сообщения об ошибках будут отображаться без проблем.