我的web.config中有以下配置:
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/Error.html"> <error statusCode="404" redirect="~/Error/Error.html" /> <error statusCode="400" redirect="~/Error/Error.html" /> </customErrors>
FWIW,这是一个ASP.NET MVC 3应用程序.
当我生成错误.例如拜访..
http://testserver/this&is&an&illegal&request
..被ASP.NET请求验证阻止,返回错误页面,但没有内容类型的头文件. IE推断内容并呈现HTML,但是Firefix(正确的IMO)将内容视为文本,并显示HTML代码.
是否需要采取其他步骤来说服ASP.NET发送内容类型标题?我认为这是与文件系统选择文件相关的事实,但MIME类型似乎在服务器上正确配置.
解决方法
我的ASP.NET MVC 2应用程序正确地发送内容类型头 – Content-Type:text / html.然后,将应用程序池从.Net Framework v2升级到.Net Framework v4之后,它开始提供这个奇怪的问题.我正在使用以下配置
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/500.html"> <error statusCode="404" redirect="/404.html" /> </customErrors>
我想要粘贴到我的自定义错误页面的静态页面.
我可以想到的唯一解决方案是在Global.asax.cs文件中的MvcApplication类的Application_Error方法中显式设置头.
public class MvcApplication : System.Web.HttpApplication { // . // . // . void Application_Error(object sender,EventArgs e) { // . // Remember to set Response.StatusCode and // Response.TrySkipIisCustomErrors // . Response.ContentType = "text/html"; // . // . // . } // . // . // . }
有点烦人,但我想到的最简单的解决方案.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。