2011-11-09 36 views
8

我想重寫Web.config中的httpCompression元素,用於運行Windows 7的IIS 7.5上的某個站點,但似乎根本沒有被讀取。web.config中的HttpCompression元素沒有在IIS7.5中讀取

爲了檢查,我在元素中引入了typeos,但我甚至無法獲得配置錯誤。

下面是Web.config中

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
    <SCHEMEx name="deflate" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
    <dynamicTypes> 
    <add mimeType="text/*" enabled="false" /> 
    <add mimeType="message/*" enabled="true" /> 
    <add mimeType="application/x-javascript" enabled="true" /> 
    <add mimeType="*/*" enabled="false" /> 
    </dynamicTypes> 
    <staticTUPES> 
    </staticTUPES> 
</httpCompression> 

當我介紹了類似的錯誤在其他元素(如IE modules)我得到一個配置錯誤的httpCompression元素的例子,所以我知道的配置文件是隻讀。

我贏得了部分對ApplicationHost.config:

appcmd unlock config /section:system.webserver/httpcompression 

但沒有工作,所以我改變對ApplicationHost.config手動所以它現在讀取:

... 
<section name="httpCompression" overrideModeDefault="Allow" /> 
... 

我」什麼我真正想要完成的是將「放氣」設置爲我的網站之一的唯一壓縮方案。

+0

我已經注意到完全相同的問題。配置不會從web.config讀取。 –

+0

當你將httpCompression改爲httpCompressionx時,你會得到配置錯誤嗎? –

回答

1

我以前曾經有過類似的問題,很久以前還沒有詳細記得。我想我直接對ApplicationHost.config(%windir%\ system32 \ inetsrv \ config)進行更改,但不是理想的解決方案。

假設你已經在這裏看了 http://www.iis.net/configreference/system.webserver/httpcompression - 您是否嘗試過使用明確元素在這篇文章中提到的?

2

對於這項工作,解鎖application.config文件後,你必須設置通過命令行的具體配置以及..

1)解鎖httpCompression的application.config的部分:

C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:system.webServer/httpCompression 

2)讓我們假設你要處理動態JSON請求(例如MIME類型=應用程序/ JSON),你應該使用這個命令:

C:\Windows\System32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost 

3)如果JSON請求是你的情況,你可能還需要處理的charset = UTF-8變化,這對於一些原因是什麼IIS給你回在大多數情況下:

C:\Windows\System32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost