6

我在 IIS7 中无法解压缩 javascript 文件并且样式表无法正确加载时遇到问题。

我可以通过关闭 IIS 中的静态压缩来解决此问题,但这不是永久的解决方案。这个问题突然开始发生了。我们没有更改代码。

Web 应用程序是 .net 4 中的 asp.net Web 表单应用程序。在 IIS 中设置了静态和动态压缩。另一个 Web 表单 Web 应用程序在应用程序级别设置静态压缩仍然运行良好。

服务器已更新为 .net 4.5 框架。

一些样式表标签设置为 runat server,因为我附加了一个版本号以在 css 缓存和新版本发布时强制重新加载 css。

此问题仅在 Internet Explorer 中发生。

我真的被这个问题困住了。

请求

Request GET        /webapp/JavaScript/jQuery/js/jquery-1.3.2.min.js HTTP/1.1
Accept  text/html, application/xhtml+xml, */*
Accept-Language x-en-GB-zscot
User-Agent  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU  AMD64
Accept-Encoding gzip, deflate
Host    localhost
Connection  Keep-Alive

响应标头

Key Value
Response    HTTP/1.1 200 OK
Cache-Control   private
Content-Type    application/x-javascript
Content-Encoding    gzip,gzip
Last-Modified   Wed, 10 Oct 2012 15:45:44 GMT
Accept-Ranges   bytes
ETag    "04f24efea6cd1:0"
Vary    Accept-Encoding
Server  Microsoft-IIS/7.5
X-Compressed-By HttpCompress
Date    Tue, 04 Dec 2012 11:07:13 GMT
Content-Length  19788

响应机构的一部分

‹
@õ¿‹ä½kwÚȶ(úýü
¬ÕÛ-…âá¤×>g +ŒtÂÛI~a²®²M7F^€ã¤ýÛï|T•ª„p²ö8çŽ;ÆéÑ1R©Þ5k¾kVéÕÿȽÊýñé)šÏµÃ¯áéh>y\溓›yI_ŠoŠ¯1Ïýrùè—Jü³GñC  RñÃûøñû|rw¿Ì¹#/÷º\þG®ßÏrŸ£Åä3|x
4

2 回答 2

2

这是 qZip 解压失败。如果Content-Length标题上的不正确,可能会发生。

有时如果页面设置了Content-Lengthheader,然后 web 服务器尝试 gZip 页面,但无法更改Content-Length- 因为已经准备好发送到浏览器。

可能的解决方案是Content-Length从您的代码中删除该组并让 IIS 设置它,看看您是否准备好制作 qZip 这个文件并决定 - 让 iis 为您完成,您自己完成。

类似的问题和答案:
在负载平衡的服务器上加载时,ASP.NET 站点有时会冻结和/或在页面顶部显示奇怪的文本

HTTP 压缩:某些外部脚本/CSS 有时无法正确解压缩

压缩 CSS 的 IIS 内容类型错误

于 2012-12-08T06:12:10.730 回答
0

我已将这个问题缩小到使用 Blowery HttpCompression 的网站。

似乎.net 4.5 Blowery 和 IIS 不再很好地协同工作,静态内容似乎被压缩了两次,一次是 Blowery,一次是 IIS。

以上是一个猜测,但我认为我知道的是,删除 Blowery 后该网站又可以正常工作了。

于 2012-12-11T15:05:15.833 回答