5

我一直致力于从我们的 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" />

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

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

4

1 回答 1

11

HttpCompression部分被定义AppHostOnlyApplicationHost.config其中阻止您在 web.config 中设置其属性。

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

于 2012-05-29T08:37:09.547 回答