我在IIS7中启用了压缩,除了ASP.NET
AJAX构建的应用程序之外,它对所有响应的预期工作正常.我有一个向客户端提供数据的Web服务.当Web服务被直接调用时,它被正确压缩.但是,当通过ASP.NET AJAX调用时,JSON响应不会被压缩.
如何让ASP.NET AJAX通过GZip压缩发送JSON响应?
解决方法
IIS7使用内容编码来决定是否压缩响应(假设浏览器可以接受gzip).它们设置在applicationHost.config中,默认情况下是列表
<dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes>
如果直接调用Web服务,则XML响应具有内容类型的text / xml,它被压缩.当由AJAX调用时,JSON响应具有application / json的内容类型,因此它不被压缩.将以下内容添加到applicationHost.config应该会修复…
<add mimeType="application/json" enabled="true" />