关于asp.net mvc:IIS覆盖MVC中404和500 http状态码的处理

IIS overriding handling of 404 and 500 http status codes in MVC

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

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

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

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

    我现在没有选择。任何建议都将不胜感激。


    您需要覆盖 IIS 处理错误状态代码的方式。这可以通过简单地修改 web.config.

    中的 <system.webServer> 部分来完成

    1
    <httpErrors existingResponse="PassThrough" />

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