ASP.NET:如何正确地重定向404错误请求?

3
我希望我的ASP.NET MVC应用程序能够将失败的请求重定向到某个控制器的匹配操作方法。在我的运行Windows 7的开发机上,这个功能很好用,但是在我的运行Windows 2008 R2的生产机上却不行。
我按照以下方式设置了我的web.config:
<customErrors mode="On" defaultRedirect="/Error/ServerError/500">       
            <error statusCode="403" redirect="/Error/AccessDenied" />
            <error statusCode="404" redirect="/Error/FileNotFound" />
</customErrors>

这个customErrors部分在我的两台计算机(生产和开发)中对于500内部服务器错误都有效。

它在我的开发计算机上对于404错误也有效。

然而,在生产计算机上,它不能正确地重定向404错误。我得到的是IIS 7自带的标准404页面,而不是/ Error / FileNotFound。

可能出了什么问题呢?

2个回答

1
如果有其他人遇到同样的问题:解决方法是在system.webServer部分添加httpErrors元素:
<httpErrors>
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="/Error/FileNotFound" responseMode="ExecuteURL" />
</httpErrors>

在 Windows 2008 R2 中,这也可以通过 IIS 控制面板完成(请参见“错误页”)。

1

两个站点的应用程序池都在集成模式下运行。感谢提供链接,了解httpErrors和customErrors之间的区别确实很有帮助。 - Adrian Grigore

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