【问题标题】:IIS 7.5 not taking notice of customErrors for 404 returned by MVC 3 appIIS 7.5 没有注意到 MVC 3 应用程序返回的 404 的 customErrors
【发布时间】:2011-07-03 13:41:34
【问题描述】:

我在带有 .NET 4.0 集成管道应用程序池的 IIS 7.5(Win 7 64 位)上运行我的 MVC 3 应用程序(最近从 2 更新),并在 web.config 中进行了以下设置:

<customErrors mode="On" defaultRedirect="~/Problem/Oops" redirectMode="ResponseRedirect">
    <error statusCode="404" redirect="~/Problem/NotFound" />
</customErrors>

如果控制器上的操作方法引发异常,服务器会生成 500 错误代码,它会正确地将浏览器发送到默认重定向 URL。

但是,如果我的操作故意通过 HttpNotFound() 返回 HttpNotFoundResult,我会得到 IIS 7.5 404.0 错误页面,而不是我的 web.config 中指示的页面。

如果我输入一个在我的应用程序中不存在的 URL,例如 http://localhost/MyApp/FOO,那么我会看到 web.config 指示的页面。

有人知道为什么我在使用 HttpNotFound() 时没有被重定向到我的自定义 404 错误页面吗?

【问题讨论】:

    标签: asp.net-mvc-3 iis-7.5 custom-errors


    【解决方案1】:

    请尝试以下语法而不是调用 HttpNotFound 并告诉我结果;)

    throw new HttpException(404, "NotFound");
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 哦,听起来很有希望。我会试一试的。
      • 不幸的是,这对我不起作用。我的 ProblemsController 中的代码永远不会被触及。 IIS 似乎忽略了设置,或者我误解了 MVC3 HttpNotFound() 方法的使用。
      • 接受这个答案,因为它是最有帮助的,即使它对我不起作用,也可能对其他人有用。
      • 这对我不起作用。下面是 Matin Habibi 的建议。
      猜你喜欢
      • 2015-03-15
      • 2011-01-05
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 2012-02-08
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多