![application/json 内容无法通过 IIS 进行 gzip 压缩](https://linux22.com/image/804979/application%2Fjson%20%E5%86%85%E5%AE%B9%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20IIS%20%E8%BF%9B%E8%A1%8C%20gzip%20%E5%8E%8B%E7%BC%A9.png)
我们的应用程序中有一些相当长的 AJAX 调用,其中一些通过相当慢的加密网络传输超过 100k 的数据。我想启用 G-Zip 压缩来application/json
加快速度。但是,我遇到了困难!首先,请注意服务器肯定支持这一点。 application/javascript
压缩得很好。我尝试做的第一件事是在部分中text/*
添加以下内容:web.config
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/json" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
这没有效果。我甚至启用了"*/*"
所有功能只是为了测试一下。
接下来,我找到了这个万能的applicationHost.config
文件。它有:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
我将其改为:
<section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" />
还是不行。我做了一个iisreset
只是为了确保新设置会生效。
最后,我编辑了实际<httpCompression>
部分applicationHost.config
并手动添加:
<add mimeType="application/json" enabled="true" />
嗯,这确实有效!但是,我觉得修改有点不妥,applicationHost.config
我宁愿只为单个 Web 应用程序启用此功能。我做错了什么?为什么我不能覆盖它web.config
?谢谢!