IIS 7.5忽略web.config中的HttpCompression设置


8

我正在尝试为mime类型启用动态压缩application/json

在applicationHost.config中,我进行了以下更改:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />

我还尝试使用以下命令解锁该部分:

appcmd unlock config /section:system.webserver/httpcompression

我的web.config设置(与applicationHost.config相同,但具有其他mimetype):

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
        <staticTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/atom+xml" enabled="true" />
            <add mimeType="application/xaml+xml" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </staticTypes>
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="application/json" enabled="true" />
            <add mimeType="*/*" enabled="false" />
        </dynamicTypes>
    </httpCompression>

但是回应并没有被压缩。我知道设置是正确的,因为如果我将mimetype直接添加到applicationHost.config,它将起作用。

我启用了失败请求跟踪,并且不会产生任何错误。


您还可以尝试在system.webServer节点下添加此<urlCompression doStaticCompression="true" doDynamicCompression="true" />
代码吗

不幸的是,这没有什么区别。此外,在IIS 7.5中,默认值已doDynamicCompression更改为true
2012年

所做的更改在IIS Express中有效吗?
tugberk 2012年

不,必须做同样的事情(直接更改applicationHost.config)
2012年

您是否解决了这个问题?
马里奥(Mario)

Answers:



1

我遇到了相同的问题,即试图将IIS(在我的情况下为IIS 10)转换为gzip,application/json但发现了解决方法。

我试过编辑ApplicationHost.config以及web.config,但是没有运气。IIS只会忽略.json数据的任何压缩设置。它会愉快地gzip您告诉它压缩的其他任何mimetype。所以我将mimetype更改为text/jsonweb.config中的内容,现在我将响应压缩了:

<system.webServer>
  <staticContent>
    <remove fileExtension=".json" />
    <mimeMap fileExtension=".json" mimeType="text/json" />
  </staticContent>
  <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
      <add mimeType="text/json" enabled="true"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/json" enabled="true"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

当然,这可能会破坏其他内容-因为现在您的回复已经 Content-Type:text/json


0

仅当使用IIS 10时,才可以使用web.config中的HttpCompression。在IIS 7.5上,必须在appHost.config上使用它。

我也争取它,直到我发现,信息对这个职位

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.