尽管启用了选项,IIS7 压缩仍失败,并显示“COMPRESSION_DISABLED”

尽管启用了选项,IIS7 压缩仍失败,并显示“COMPRESSION_DISABLED”

我无法在 IIS7.5 服务器上运行 GZIP 压缩。我尝试了网上的所有建议,包括 ServerFault 上的建议,但无论如何,跟踪总是返回“COMPRESSION_DISABLED”,但我不知道为什么它被禁用。

我的 applicationHost.config 中有以下内容:

    <httpCompression directory="C:\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="2000">
        <scheme name="gzip" dll="C:\Windows\system32\inetsrv\gzip.dll" />
        <dynamicTypes>
            <add mimeType="text/*" enabled="true" />
            <add mimeType="message/*" enabled="true" />
            <add mimeType="application/x-javascript" enabled="true" />
            <add mimeType="*/*" enabled="true" />
        </dynamicTypes>
        <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>
    </httpCompression>

    <urlCompression />

我的DefaultAppPool.config:

    <urlCompression dynamicCompressionBeforeCache="true" />

    <httpCompression directory="C:\inetpub\temp\IIS Temporary Compressed Files" doDiskSpaceLimiting="false" maxDiskSpaceUsage="1000" minFileSizeForComp="0" noCompressionForHttp10="false" noCompressionForProxies="false" noCompressionForRange="false" staticCompressionEnableCpuUsage="80" dynamicCompressionEnableCpuUsage="80">
        <dynamicTypes>
            <add mimeType="*/*" enabled="true" />
            <add mimeType="text/html" enabled="true" />
        </dynamicTypes>
        <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>
    </httpCompression>

我查看过的 IIS 管理器中的每个选项都显示已启用压缩。有些内容以压缩形式返回,但这只是 PHP 在将其传递给 IIS 之前压缩过的 PHP 内容。

根据跟踪,所有请求都命中了 Static 或 DynamicCompressionModule,但总是失败,错误代码为“COMPRESSION_DISABLED”。除了跟踪之外,还有其他方法可以确定 IIS 禁用压缩的原因吗?

我已经运行了命令

appcmd list config "http://example.com/index.html"

查看该 URL 的完整配置,根据转储的配置,上面显示的 HTTP 和 URL 压缩设置已合并,并且没有提到禁用压缩。

是否有可能是另一个模块导致压缩被禁用?输出缓存?

所以我很困惑到底是什么问题。

答案1

我没有看到其中列出的 doDynamicCompression 或 doStaticCompression=true;它们设置了吗?如果设置了,在什么级别?

相关内容