2016-07-28 80 views
0

问题与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> 

回答

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你应该看到关于压缩过程或原因的请求没有被压缩,像NOT_FREQUENTLY_HITTOO SMALL

细节