我一直在尝试在我的 Windows Azure 托管的 WCF Restful 服务上启用 gzip HTTP 压缩,该服务仅从 GET 和 POST 请求返回 JSON,但一直未成功。
我尝试了很多方法,但难以列出它们,我现在意识到我一直在使用冲突的信息(关于旧版本的 azure 等),所以认为最好从干净的状态开始!
我正在使用 Visual Studio 2008,并使用 Visual Studio 的 2010 年 2 月工具。
因此,根据以下 链接..
..HTTP 压缩现在已启用。 我使用了以下页面上的建议(仅使用 URL 压缩建议)..
http://blog.smarx.com/posts/iis-compression-in-windows-azure
<urlCompression doStaticCompression="true"
doDynamicCompression="true"
dynamicCompressionBeforeCache="true"
/>
但我无法获得压缩。我不知道urlCompression和httpCompression之间的区别,这并没有帮助我。我试图找出区别,但没有结果!
可能是因为 Visual Studio 的工具在支持压缩的 Azure 版本之前发布,这是一个问题吗?我在某个地方读到,使用最新的工具时,可以选择发布时要使用的 Azure 操作系统版本......但我不知道是否属实,如果是,我找不到选择的位置。我使用的是启用http之前的版本吗?
我还尝试过 blowery http 压缩模块,但没有任何效果。
有人有关于如何实现这一点的最新建议吗?即与当前版本的 Azure 操作系统相关的建议。
谢谢!
史蒂文
更新:我编辑了上面的代码以修复 web.config 片段中的错误。
更新2:使用下面答案中显示的 whatsmyip URL 测试响应时,显示我的 service.svc 的 JSON 响应未经任何压缩返回,但静态HTML页面是被gzip压缩返回的。如何使JSON响应压缩的任何建议将不胜感激!
更新3:尝试使用大于256KB的JSON响应,以查看问题是否由于JSON响应小于此值而引起,如下面的评论所述。不幸的是,响应仍未被压缩。