【发布时间】:2011-02-16 01:03:59
【问题描述】:
我一直在尝试在我的 Windows Azure 托管的 WCF Restful 服务上启用 gzip HTTP 压缩但未成功,该服务仅从 GET 和 POST 请求返回 JSON。
我已经尝试了很多事情,以至于我很难将它们全部列出来,现在我意识到我一直在处理相互矛盾的信息(关于旧版本的 azure 等),所以认为最好从头开始!
我正在使用 Visual Studio 2008,使用 Visual Studio 的 2010 年 2 月工具。
所以,根据下面link..
.. 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 OS 版本……但我不知道这是不是真的,如果是,我找不到在哪里选择。我可以使用支持 http 的版本吗?
我也尝试过bloery http压缩模块,但没有结果。
是否有人对如何实现这一目标有任何最新建议?即与当前版本的 Azure 操作系统相关的建议。
干杯!
史蒂文
更新:我编辑了上面的代码来修复 web.config sn-p 中的一个类型。
更新 2: 使用下面答案中显示的 whatsmyip URL 测试响应表明,我的 service.svc 的 JSON 响应在没有任何压缩的情况下返回,而是静态 HTML 页面 ARE 使用 gzip 压缩返回。我们将不胜感激地收到任何有关如何获取 JSON 响应以进行压缩的建议!
更新 3: 尝试了大于 256KB 的 JSON 响应,以查看问题是否是由于 JSON 响应小于此值,如下面的 cmets 所述。不幸的是,响应仍未压缩。
【问题讨论】:
-
共享主机应该默认为所有 json web 服务启用 gzip。当然,它会给服务器带来更多的 CPU 负载,但是通过网络传输的较小数据包的好处远远超过了成本 - IMO。并非我们所有人的家中都有光纤。
标签: json gzip azure http-compression