在应用程序web.config中设置时,IIS 7.5不压缩JSON

Car*_*cke 5 .net iis-7.5 windows-server-2008-r2 asp.net-mvc-3

我一直致力于从我们的一个MVC3站点启用JSON压缩.从我读过的各种文章看起来好像我应该能够application/json; charset=utf-8在应用程序web.config文件中设置MIME类型.但这样做并不能实现压缩.但是当添加到applicationhost.config文件时,它可以工作.我在这里错过了什么吗?

我的应用程序web.config添加了以下内容:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="application/javascript; charset=utf-8" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="application/javascript; charset=utf-8" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />
    </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
Run Code Online (Sandbox Code Playgroud)

服务器正在运行带有IIS7.5的Windows Server 2008 R2.我还为相关网站安装并启用了动态压缩功能.

任何帮助将不胜感激,因为我不希望为整个服务器启用JSON压缩.

tpe*_*zek 10

HttpCompression定义AppHostOnlyApplicationHost.config一个部分,阻止您在web.config中设置其属性.

压缩模块仅从"ApplicationHost.config"中读取服务器级属性,因此即使您解锁该部分(使用appcmdoverrideModeDefault="Allow"),也会忽略较低级别的设置.