加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – IIS以自定义错误页面作为纯文本,无内容类型标题

发布时间:2020-12-15 06:53:42 所属栏目:百科 来源:网络整理
导读:UPD:这是 full solution for error handling 我有简单的香草MVC4网络项目.没有添加,没有删除,只是在Visual Studio中创建了一个新项目. 在web.config中,我添加了自定义错误页面处理程序: customErrors mode="On" defaultRedirect="~/Content/Error.htm" red
UPD:这是 full solution for error handling

我有简单的香草MVC4网络项目.没有添加,没有删除,只是在Visual Studio中创建了一个新项目.

在web.config中,我添加了自定义错误页面处理程序:

<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表示,错误页面没有内容类型标题,导致浏览器将页面呈现为纯文本:

有没有办法强制使用内容类型头的IIS服务器错误页?

附:实际的问题是在一个复杂的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显示:

捂脸!

解决方法

使用.aspx代替.htm作为错误页面(将htm重命名为aspx).
<customErrors mode="On" defaultRedirect="~/Content/Error.aspx" redirectMode="ResponseRewrite" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读