在Windows Server 2012(标准版)上激活IIS 8上的Gzip的问题
但仍然没有Gzip可用。 但是,在我的localhost机器上(只是一个Windows 10),这可以工作。
我所看到的是,当我通过服务器localhost浏览我的网站时,gzip临时目录(C:\ inetpub \ temp \ IIS临时压缩文件)正在填满。但奇怪的是,我没有看到任何Gzip-ped镀铬。
唯一的标题(在chrome中)是: HTTP / 1.1 304未修改 Accept-Ranges:字节 ETag:" 0a354779de8d11:0" 服务器:Microsoft-IIS / 8.0 X-Powered-By:ASP.NET 日期:星期四,2016年7月28日13:41:04 GMT
(即使是yslow说没有激活gzip)
当我删除gzip临时文件夹时,通过“官方”浏览到该网站。网站网址,然后甚至都没有生成。
有谁知道这里发生了什么?
//编辑: 甚至在web.config
中添加了这个<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="*/*" 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="4" />
</httpCompression>
答案 0 :(得分:0)
以下是我将如何解决此问题:
我在这里使用PowerShell,但您也可以使用GUI或其他工具:
确保安装了失败的请求跟踪模块:
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpTracing
启用您网站的跟踪(更改名称):
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/traceFailedRequestsLogging" -name "enabled" -value "True"
设置跟踪:
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/tracing/traceFailedRequests" -name "." -value @{path='*.html'}
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/tracing/traceFailedRequests/add[@path='*.html']/traceAreas" -name "." -value @{provider='WWW Server';areas='Compression';verbosity='Verbose'}
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site' -filter "system.webServer/tracing/traceFailedRequests/add[@path='*.html']/failureDefinitions" -name "statusCodes" -value "200,304"
你最终会在web.config中找到类似的东西:
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*.html">
<traceAreas>
<add provider="WWW Server" areas="Compression" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="200,304" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
我将其限制为http状态为200或304的html文件,我们只对Compression
感兴趣。你可能想要改变它。
现在,您可以多次访问您的网站,然后查看
C:\inetpub\logs\FailedReqLogFiles\W3SVCx
对于某些文件,将它们复制到您的工作站,因为在服务器上打开它们很痛苦。
打开XML文件并单击Request Details
标签,现在搜索Compression
您应该看到有关压缩过程的详细信息或请求未压缩的原因,例如{{ 1}}或NOT_FREQUENTLY_HIT