IIS 7.5没有注意到MVC 3应用程序返回的404错误的customErrors。

5

我正在运行我的MVC 3应用程序(最近从2更新)在IIS 7.5(Win 7 64位)上,使用.NET 4.0集成管道应用程序池,并在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错误页面吗?
2个回答

6
请尝试以下语法,而不是调用HttpNotFound,并让我知道结果 ;)
throw new HttpException(404, "NotFound");

0

哦,听起来很有前途。我会试一试的。 - Peter
不幸的是,这对我没有起作用。我的ProblemsController中的代码从未被触及。IIS似乎忽略了设置,或者我误解了MVC3 HttpNotFound()方法的使用。 - Peter
接受这个答案,因为它是最有帮助的,即使对我没有用,也可能对其他人有用。 - Peter
这对我没用。Matin Habibi在下面的建议很管用。 - user2444499

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接