2016-07-28 84 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

細節