Iis-7
在一些 IIS7 web.config 壓縮設置方面需要幫助
我正在嘗試在我的 web.config 文件中配置我的 IIS7 壓縮設置。我正在嘗試將 HTTP 1.0 請求啟用為 gzip。
MSDN 有關於它的所有資訊here。
是否可以在我自己網站的 web.config 文件中包含此配置資訊?還是我需要在應用程序級別設置它?目前,我的 web.config 中有該程式碼…
<system.webServer> <urlCompression doDynamicCompression="true" dynamicCompressionBeforeCache="true" /> <httpCompression cacheControlHeader="max-age=86400" noCompressionForHttp10="False" noCompressionForProxies="False" sendCacheHeaders="true" /> ... other stuff snipped ... </system.webServer>
它不起作用 :( HTTP 1.1 請求正在被壓縮,而不是 1.0。
上面的 MSDN 頁面說它可以用於:-
- 機器配置
- 應用程序主機配置
- 根應用程序 Web.config
- 應用程序 Web.config
- 目錄 Web.config
那麼,我們可以在 web.config 文件中以程式方式在每個網站上設置這些設置嗎?(這是一個應用程序 Web.config 文件…)我做錯了什麼?
乾杯:)
編輯:有人問我怎麼知道 HTTP1.0 沒有被壓縮。我正在使用失敗的請求跟踪規則,它會報告:-
DYNAMIC_COMPRESSION_START DYNAMIC_COMPRESSION_NOT_SUCESS Reason: 3 Reason: NO_COMPRESSION_10 DYNAMIC_COMPRESSION_END
經過大量研究後,預設情況下它在應用程序級別被“鎖定”。因此,它需要“解鎖”。這可以通過命令行或(額外下載)iis7 管理工具來實現。
例如。
appcmd set config -section:urlCompression /doDynamicCompression:true
參考文獻:
密切關注 IIS 7.x web.config 的設置
noCompressionForProxies="false"
在 web.config 級別不支持。它必須在 C:\Windows\System32\inetsrv\config\ApplicationHost.config 中設置,如下所示:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="False">
請務必在更改設置後執行 IIS 重置。
如果客戶端的 Web 請求具有 HTTP“Via”標頭,則 IIS 確定請求來自代理,如下所示:
Via: 1.1 foo