我正在尝试覆盖运行Windows 7的IIS 7.5上的站点的Web.config中的httpCompression
元素,但它似乎根本没有被读取。
要检查,我在元素中引入了typeos,但我甚至无法获得配置错误。
以下是Web.config
中httpCompression
元素的示例
<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
)中引入类似错误时,我收到配置错误,因此我知道配置文件已被读取。
我已解锁ApplicationHost.config中的部分:
appcmd unlock config /section:system.webserver/httpcompression
但是这不起作用,所以我手动更改了ApplicationHost.config,现在它显示为:
...
<section name="httpCompression" overrideModeDefault="Allow" />
...
我真正想要实现的是将“deflate”设置为我的某个网站的唯一压缩方案。
答案 0 :(得分:4)
要使其正常工作,解锁application.config文件后,您还必须通过命令行设置特定配置。
1)解锁application.config的 httpCompression 部分:
var_dump
2)假设你想要处理动态JSON请求(例如 mimetype = application / json ),你应该使用这个命令:
C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:system.webServer/httpCompression
3)如果您的情况是JSON请求,您可能还想处理 charset = utf-8 变体,由于某些原因,IIS在大多数情况下会回复您:
C:\Windows\System32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost
答案 1 :(得分:1)
我之前有过一个类似的问题,很久以前就没详细记得了。我想我直接对ApplicationHost.config(%windir%\ system32 \ inetsrv \ config)进行了更改,但不是理想的解决方案。
假设你看过这里 http://www.iis.net/configreference/system.webserver/httpcompression - 您是否尝试过使用此帖中提到的清除元素?