在我们的应用程序中,我们有一些相当长的AJAX调用,其中一些在相当慢的encryptionnetworking上传输超过100k的数据。 我想在application/json上启用G-Zip压缩来加速这一点。 但是,我正在经历一段艰难的时光! 首先请注意,服务器肯定支持这个。 application/javascript和text/*压缩就好了。 我尝试的第一件事是在<system.webServer>部分的web.config中添加以下内容:
<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"/>
这没有效果。 我甚至启用了"*/*"只是为了testing。
接下来,我挖出了全能的applicationHost.config文件。 这有:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
我改为:
<section name="httpCompression" allowDefinition="Everywhere" overrideModeDefault="Allow" />
还是不行 我做了一个iisreset ,以确保新设置生效。
最后,我编辑了applicationHost.config <httpCompression>部分,并手动添加到:
<add mimeType="application/json" enabled="true" />
那么,这实际上工作! 但是,我觉得修改applicationHost.config时有点不好意思,我宁愿只为一个Web应用程序启用它。 我在做什么错了,为什么我不能在web.config覆盖这个? 谢谢!