我已经在IIS7中启用了压缩功能,并且所有响应都可以正常工作,除了由ASP.NET AJAX构建的响应。 我有一个Web服务向客户端提供数据。 当直接调用Web服务时,它被正确地压缩。 但是,当通过ASP.NET AJAX调用时,JSON响应不会被压缩。
如何使ASP.NET AJAX发送经过GZip压缩的JSON响应?
下载 Fiddler(版本2.1.9是最新版)
在IE 7中启用Fiddler:工具-> Fiddler2
由于所有流量都通过代理路由,因此您需要设置Fiddler在HTTP标头中应用accept-encoding: Gzip。规则-> 应用GZip编码
通过fiddler访问您的站点。如果您的站点位于本地主机上,则IE7不会通过fiddler路由此站点。 Fiddler 2.1.8有一个很棒的功能,可以将localhost(127,0,0,1)映射到 http:// ipv4.fiddler 和 http:// ipv6.fiddler
在Fiddler会话中找到asmx请求。
要验证请求是否使用gzip编码,请查看顶部面板中的请求标头。您应该看到"客户端:accept-encoding:gzip,deflate"
要验证响应是否使用gzip编码,请查看底部面板中的响应标头。您应该看到"传输:内容编码:gzip"
我在Vista Business SP1上安装了IIS 7,没有进行其他配置,我的项目使用带有标准Web服务的ASP.NET AJAX。
希望这可以帮助您!
您需要检查.asmx文件扩展名是否在压缩文件类型列表中,这是ajax json的来源。