HttpErrors existingResponse =“Replace”阻止了MVC的自定义错误处理

时间:2012-07-12 14:20:25

标签: asp.net-mvc asp.net-mvc-3 web-config http-status-code-404

我正在使用MVC3应用程序中的[HandleError]属性处理错误。这工作正常,但要实现这一点,我需要添加

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

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

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

这很简单,适用于404。在这里添加它的原因是它似乎是一个很好的捕获 - 没有任何自定义代码。现有的响应= “替换”是必需的,其他模式导致404未被处理。

问题是当existingResponse =“Replace”时,CustomErrors不再起作用。它只返回一个没有细节的剥离500错误。

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

1 个答案:

答案 0 :(得分:4)

不是直接回答,但发现this SO solution对我有用,而非使用existingResponse="replace"