我刚刚发布了一个ASP.NET MVC网站,我在其中构建了自定义错误页面。下面是我如何实现它们:覆盖虚拟主机的默认错误页面
在ErrorController:
在web.config中:
<customErrors mode="On" defaultRedirect="~/500">
<error statusCode="403" redirect="~/403"/>
<error statusCode="401" redirect="~/401"/>
<error statusCode="404" redirect="~/404"/>
<error statusCode="409" redirect="~/409"/>
<error statusCode="500" redirect="~/500"/></customErrors>
当然,错误的请求路由到NOTFOUND方法,等等。理论上,它应该起作用。
但是,我面临一个问题:现在,我已将我的网站发布给我的主机(GoDaddy),我注意到返回HTTP状态的错误代码会导致我的自定义错误页面被默认GoDaddy的。
我该如何解决这个问题?当然,最简单的解决方案是返回200状态码,但我更愿意返回真正的错误代码(对于SEO等)。
+1提醒response.TrySkipIisCustomErrors - http://stackoverflow.com/questions/1706934/asp-net-mvc-app-custom-error-pages-not-displaying-in-shared-hosting-environment has一个更详细的答案和链接到Rick Strahl博客上的有用条目 - http://www.west-wind.com/weblog/posts/745738.aspx – KevD 2012-11-06 11:02:29