IIS - 在某些情况下ERR_CONTENT_DECODING_FAILED

时间:2018-05-28 13:38:13

标签: iis gzip iis-8 deflate

我们在暂存环境中遇到问题,从IIS中的Asp.Net webforms应用程序提供JavaScript和css文件会导致Google Chrome中出现以下错误

Failed to load resource: net::ERR_CONTENT_DECODING_FAILED

在Firefox中,它显示为

Loading failed for the <script> with source “https://blah/jquery.tmpl.min.js

如果应用程序在应用程序池设置为经典管道模式的情况下运行,并且它已经运行了多年,则此方法可正常工作。 它们仅在应用程序池设置为集成管道模式时出现,我们需要进行即将发生的更改。它在任一管道模式下都可以在QA服务器上正常工作。服务器设置为使用Deflate压缩。

我们还使用名为intelligencia的第三方网址重写器已使用多年。这会将website.net/{customerSiteKey}/scripts/script1.js之类的网址重写为website.net/scripts/script1.js

场景1(按预期工作)

在集成管道模式中,直接访问真实资源URL website.net/scripts/script1.js可以直接正常工作 - 服务器返回Content-Encoding:Deflate的响应头,并且响应体已编码且资源有效。

场景2(已破碎)

在集成模式下访问需要重写的url website.net/{customerSiteKey}/scripts/script1.js无法正常工作 - Content-Encoding的响应标头:Deflate但响应正文未编码并且是纯文本,导致浏览器无法加载脚本,因为他们尝试解码未编码的内容。

在经典模式下,两种情况都可以正常工作。

我正在寻找与经典vs集成模式相关的原因,但仅针对重写的url,这些url会以某种方式设置压缩标头,但不会压缩主体。

我一直在比较QA和登台之间的applicationhost.config和web.config文件以查看是否存在模块订单问题,但到目前为止,任何差异都无法帮助我在本地重新创建问题无关紧要。

还有什么可能是导致此问题的原因,因为我不确定还有什么可以调查/尝试?

0 个答案:

没有答案