IIS 上的 Gzip 压缩 - 无法正常工作

Posted

技术标签:

【中文标题】IIS 上的 Gzip 压缩 - 无法正常工作【英文标题】:Gzip compression on IIS - Can't get it to work 【发布时间】:2018-10-11 15:54:01 【问题描述】:

我有一个现有的 IIS 应用程序,我正在尝试让 GZIP 服务器端压缩工作。该应用程序在 EPIServer CMS 上运行(我不太熟悉) - 作为第一步,我认为这可能与 CMS 有关...

我决定创建一个新的 IIS 应用程序,这次使用 Umbraco(我非常熟悉的另一个 CMS) - 我创建了一个包含一些 CSS 文件和图像的基本页面,

Content-Encoding: gzip

标题。

这是我尝试并检查过的。

    在本地工作,我正在运行 windows 10. 和 IIS 10 我已在 Internet 信息服务 > Windows 功能中的性能功能下启用了动态内容压缩和静态内容压缩 对于在 IIS 中本地设置的网站,我已确保压缩部分已勾选启用动态和静态复选框。

    在我的 web-config 文件中,我添加了这一行

    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
    

当 Webconfig 有这一行时,我会检查浏览器中的标题:

请求标头

Accept: text/css,*/*;q=0.1
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Host: umbracotest.site
Proxy-Connection: keep-alive
Referer: http://umbracotest.site/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/66.0.3359.117 Safari/537.36

响应标题

Accept-Ranges: bytes
Content-Type: text/css
Date: Tue, 01 May 2018 15:09:02 GMT
ETag: "03739d0e978d31:0"
Last-Modified: Tue, 19 Dec 2017 16:52:54 GMT
Transfer-Encoding: chunked
Vary: Accept-Encoding

    如果我稍微更改该 webconfig 行 - dynamicCompressionBeforeCache="false" 为 true - 那么我只会在浏览器中看到一大堆符号 - 这意味着什么吗?

    如果我在 webconfig 中再添加几行,如下所示:

    <system.webServer> <httpCompression> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="image/jpeg" enabled="true" /> <add mimeType="image/png" enabled="true" /> <add mimeType="image/svg" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="image/jpeg" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="8" /> </httpCompression> <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />

标题仍然相同。

    C:\inetpub\temp\IIS 临时压缩文件\MYAPPPOOL-NAME

这是一个 ASP.net MVC 应用程序 有什么想法吗?

【问题讨论】:

您是否尝试清除缓存? (Ctrl + F5) 是的......试过......那个。即将为 GZIP 做一个 hello world 风格的教程,也许我错过了什么。 【参考方案1】:

所以在我的头在墙上敲了大约 8 个小时后,我终于让它工作了!

在检查了所有内容并阅读了我能找到的关于该主题的所有帖子后,我发现了一个对类似问题的评论,该评论表明这可能与我的防病毒软件有关。我在企业环境中工作,我无权在本地计算机上禁用它。所以我将代码部署到我们的登台服务器............它工作正常。

因此,如果其他人遇到此问题,请尝试禁用您的防病毒软件,看看是否有什么不同,它对我有用。

【讨论】:

以上是关于IIS 上的 Gzip 压缩 - 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

aspx 页面中的 IIS 6.0 Gzip 压缩

IIS Web 服务器上的 Youtube 数据 API V3 PHP 无法正常工作

IIS 上的 Blazor Webassembly Brotli 和 Gzip 压缩

gzip压缩不适用于xampp

端口 8080 上的虚拟主机 XAMPP 无法正常工作

nginx开启gzip压缩后导致apk包下载不能正常安装