我有一个 C# Web 表单 ASP.NET 4.0 Web 应用程序,由于某种原因,我的 web.config 的 system.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 原生而不是我的应用程序这一事实之外,它完全绕过了 Elmah 正确记录我的 404 异常。
编辑:为了避免任何这样的建议,我只在 customErrors 停止工作后添加了 httpErrors 配置,所以我会有任何东西。