【问题标题】:Yellow screen of death only working in IE黄屏死机只能在 IE 中工作
【发布时间】:2012-10-27 18:12:53
【问题描述】:

我继承了一个大型应用程序,每当发生异常时,我都会在 Chrome 中看到一个乱码:

但是在 IE 中却如预期的那样显示黄屏死机:

我无法弄清楚为什么会发生这种情况。会不会是编码问题?

编辑 - 以下是请求和响应标头:

请求:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:.ASPXAUTH=5D3E8316B9AF0... [cut for brevity] 
Host:localhost:81
Referer: **************** [intentionally hidden]
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.96 Safari/537.4

回复:

Cache-Control:private
Content-Length:6193
Content-Type:text/html; charset=utf-8
Date:Wed, 07 Nov 2012 16:42:15 GMT
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET

【问题讨论】:

    标签: asp.net iis-7 yellow-screen-of-death


    【解决方案1】:

    尝试使用 Chrome 开发者工具(菜单 工具 -> 开发者工具)调试此案例。切换到 Network 标签并重新加载页面。现在单击左栏中的文件名并检查 Headers -> Response Headers -> content-type 的值 text /html 以及 gzipcontent-encoding。也许响应被压缩了,但在 http 标头中没有正确声明。

    同时查看响应标签。内容是否有可读的html文档?

    【讨论】:

    • 是的,我检查了但没有看到任何明显的内容,响应内容就像它出现在屏幕上一样都是垃圾。我已将标题添加到 OP。
    • 我认为响应可能是 gzip 压缩的,但没有从服务器发送 Content-Encoding:gzip 标头。也许 IE 会自动检测压缩但 Chrome 不会!?如果您想尝试,您应该可以在Fiddler 中设置断点并插入此标头。
    • 我实际上已将其范围缩小到视图引擎 (Razor) 中发生的错误。如果我从 Controller 抛出异常,它们会得到很好的处理,但未捕获的 Razor 错误会产生乱码。
    猜你喜欢
    • 2011-01-11
    • 2011-07-23
    • 1970-01-01
    • 2011-06-24
    • 2011-05-14
    • 1970-01-01
    • 2010-10-27
    • 2011-01-21
    • 2010-09-06
    相关资源
    最近更新 更多