Gzip已不能正常工作,服务器2012,IIS 8个
问题与Windows服务器2012(标准)对IIS 8激活Gzip已Gzip已不能正常工作,服务器2012,IIS 8个
- 所以我激活了压缩在Windows功能
- 我托运的两个复选框IIS - 压缩(动态和静态)
但仍然没有Gzip可用。 但是,在我的本地主机(只是一个Windows 10),这个工程。
我所看到的是,当我通过服务器本地主机浏览我的网站时,gzip临时目录(C:\ inetpub \ temp \ IIS Temporary Compressed Files)正在被填满。但奇怪的是,我没有看到任何镀铬的Gzip-ped。
唯一标头(在铬)为: HTTP/1.1 304未修改 的Accept-范围:字节 ETag的: “0a354779de8d11:0” 服务器:IIS/8.0 X供电-通过:ASP .NET 日期:星期四,2016年7月28日13时41分04秒GMT
(即使YSlow的是说不Gzip已被激活)
当我删除gzip的Temp文件夹,浏览到该网站线槽“官方'网站的网址,那么甚至没有生成。
有没有人知道这里发生了什么?
//编辑: 在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>
这里是我会怎么解决这个:
我在这里使用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
你应该看到关于压缩过程或原因的请求没有被压缩,像NOT_FREQUENTLY_HIT
或TOO SMALL