我一直尝试在我的Windows Azure托管的WCF Restful服务上启用gzip HTTP压缩失败,该服务仅从GET和POST请求返回JSON.
我已经尝试了很多东西,我很难列出所有这些东西,我现在意识到我一直在处理相互矛盾的信息(关于旧版本的天蓝色等),所以最好从干净的石板开始吧!
我正在使用Visual Studio 2008,使用2010年2月的Visual Studio工具.
所以,根据以下链接 ..
..现在已启用HTTP压缩.我已经使用了以下页面中的建议(仅限URL压缩建议).
http://blog.smarx.com/posts/iis-compression-in-windows-azure
<urlCompression doStaticCompression="true"
doDynamicCompression="true"
dynamicCompressionBeforeCache="true"
/>
Run Code Online (Sandbox Code Playgroud)
..但我没有压缩.我不知道urlCompression和httpCompression之间的区别是没有用的.我试图找出但无济于事!
可能,Visual Studio的工具是在支持压缩的Azure版本之前发布的,这是一个问题吗?我已经阅读过某些地方,使用最新的工具,您可以选择在发布时使用哪个版本的Azure OS ...但我不知道这是否属实,如果是,我找不到哪里选择.我可以使用预启用http的版本吗?
我也试过了吹嘘的http压缩模块,但没有结果.
有没有人有关于如何实现这一目标的最新建议?即与当前版本的Azure OS相关的建议.
干杯!
史蒂芬
更新:我编辑了上面的代码来修复web.config片段中的类型.
更新2:测试使用下面的答案显示的URL whatsmyip的答复是表示在没有经过任何压缩正在返回从我service.svc我的JSON响应,但静态的HTML页面ARE被用gzip压缩返回.任何关于如何获得压缩的JSON响应的建议都将非常感谢!
更新3:尝试了大于256KB的JSON响应,以查看问题是否是由于JSON响应小于此,如下面的评论中所述.不幸的是,响应仍然没有被压缩.
我目前正在努力将我的一些MVC3控制器迁移到MVC4 Api控制器.我已经通过inherting ActionFilterAttribute和overriding方法实现了MVC3控制器获取方法响应的压缩机制OnActionExecutiong.经过一番研究,我发现,我需要使用ActionFilterMethod的System.Web.HttpFilters.如果有人可以分享一些示例代码,让我开始使用GZip压缩HTTP响应,那将是很棒的