'runAllManagedModulesForAllRequests'设置为'true'时的静态压缩

时间:2011-12-02 15:47:51

标签: asp.net gzip iis-7.5 httpmodule http-compression

我们更新了ASP.NET遗留Web应用程序使用.NET Framework 4.0之前的时间。那里没有任何问题。最后一个sprint,我们实现了新的模块来重写SEO优化的URL。但是,因为我们想要使用没有任何文件和扩展名的URL(例如,而不是http://server/Some-Nice-URL/file.aspx只有http://server/Some-Nice-URL/),我们被迫将'runAllManagedModulesForAllRequests'设置为'true',因为没有这是ASP.NET会话不可用。

我们现在遇到静态压缩和GZIP的问题。经过几次回发后,我们“丢失”了CSS和/或Javascripts。如果我直接访问CSS或Javascript文件,有时会收到浏览器消息“内容编码错误”,有时是正确传递的文件。在Fiddler中,CSS或Javascript文件的长度有时不正确,但在HTTPCompression中显示GZIP编码和“响应已编码,我需要在检查前解码”。单击“GZip标头中的幻数不正确”后。如果我们将'runAllManagedModulesForAllRequests'或'doStaticCompression'设置为'false',则静态压缩和“丢失”CSS和/或Javascript文件没有任何问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这是因为在某些时候你在文件头上设置文件的内容长度,之后gzip尝试改变那个长度但是因为你没有设置iis来改变标题而失败,你发送错误大小的gzip文件,这会产生问题。

要解决此问题,请找到您设置此内容长度并删除它的点,或在设置后更改iss以接受标题更改。

看,这个类似的答案: https://stackoverflow.com/a/3210574/159270

并且: ASP.NET site sometimes freezing up and/or showing odd text at top of the page while loading, on load balanced servers