UPD:这是
full solution for error handling
我有简单的香草MVC4网络项目.没有添加,没有删除,只是在Visual Studio中创建了一个新项目.
<customErrors mode="On" defaultRedirect="~/Content/Error.htm" redirectMode="ResponseRewrite" />
〜/ Content / Error.htm文件是:
<!DOCTYPE html> <html> <head> <Meta charset="utf-8" /> <title>OOPS! Error Occurred. Sorry about this.</title> </head> <body> <h2>OOPS! Error Occurred</h2> </body> </html>
每当我在网站上出现404错误,那么在Firefox和Chrome中,Error.htm就是纯文本:
Fiddler表示,错误页面没有内容类型标题,导致浏览器将页面呈现为纯文本:
附:实际的问题是在一个复杂的MVC4项目中,它在Global.asax中有自己的错误处理.但是我发现一些错误不会通过ASP管道,只能由IIS处理.像dot at the end of the url. < httpErrors />的解决方案确实提供了正确的响应,但是我们在Global.asax,Application_Error()中的自定义错误处理没有被这样调用.
UPD好像我不能赢得这场战争. IE显示html正确呈现,Firefox和Chrome显示为纯文本.当我切换到纯文本,Firefox和IE正确显示空格,IE吞下了空白,并尝试呈现html.如果我尝试将图像作为错误页面,Firefox和Chrome显示图像. IE显示:
捂脸!