我有一个使用路由来处理URL的C# Web Forms ASP.NET 4.0 Web应用程序,但某些原因导致系统.web部分中定义的自定义错误完全被忽略,并且会回退到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本地,从而无法正确记录我的404异常,这对Elmah造成了影响。
编辑: 为了避免任何建议,我只在customErrors停止工作后添加了httpErrors配置,以便我有任何东西可做。