Iis-7

在一些 IIS7 web.config 壓縮設置方面需要幫助

  • October 12, 2011

我正在嘗試在我的 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

引用自:https://serverfault.com/questions/23788