IIS重写在MVC中处理404和500 http状态代码

时间:2014-02-21 06:47:03

标签: asp.net-mvc error-handling iis-7.5

我在IIS 7.5中使用MVC 4。我正在尝试使用自己的控制器和视图处理404,500和其他代码。

但是,无论我尝试什么,IIS都会覆盖我的设置/代码并注入它自己的404(等等)错误页面。这种情况发生在使用IIS Express的开发机器上以及使用IIS 7.5生成。

这是迄今为止我尝试过的所有内容的组合:

  1. web.config中使用的标记,重定向到我的自定义错误视图,没有运气。
  2. 在Global.asax中提供自定义错误处理。它到达那里(尝试404和500),它确实调用我的自定义控制器和视图,但最后,IIS仍然赢了并显示其页面而不是我的视图。
  3. 顺便说一下,我正在尝试这个无扩展的URL和.html页面。如何让IIS单独使用并允许MVC处理这些错误。

    此时我没有选择。任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:4)

您需要覆盖IIS处理错误状态代码的方式。只需修改web.config中的<system.webServer>部分即可完成此操作。

<httpErrors existingResponse="PassThrough" />

可在IIS.NET网站上找到完整信息:http://www.iis.net/configreference/system.webserver/httperrors