6

我正在使用[HandleError]MVC3 应用程序中的属性处理错误。这很好用,但要让它工作,我需要添加

<system.web>
     <customErrors mode="On" />

为了处理 404 错误,我将其添加到 system. webserver即 IIS 配置而不是 asp.net

<httpErrors errorMode="Custom" existingResponse="Replace">
   <remove statusCode="404" />
   <error statusCode="404" responseMode="ExecuteURL" path="/404page" />
</httpErrors>

这很简单,非常适合 404。在这里添加它的原因是它看起来像是一个很好的包罗万象,没有任何自定义代码。existingResponse= "Replace"是必需的,其他模式导致 404 不被处理。

问题是当existingResponse="Replace" 时CustomErrors 不再起作用。它只是返回一个没有详细信息的剥离 500 错误。

这两种模式只是相互排斥吗?我知道我可以编写其他 404 解决方案,但理想情况下,我希望这个简单的配置更改能够工作或理解为什么它不能完成。

4

1 回答 1

4

不是直接的答案,但发现这个 SO 解决方案对我有用,而不是使用existingResponse="replace"

于 2012-07-16T22:43:31.123 回答