json - 如何对 Windows Azure 动态内容启用 gzip HTTP 压缩

我一直在尝试在 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" 
/>

..但我没有得到压缩。我不知道url压缩http压缩之间的区别并没有帮助。我试图找出答案,但没有成功!

Visual Studio 工具是在支持压缩的 Azure 版本之前发布的,这会是一个问题吗?我在某处读到,使用最新的工具,您可以在发布时选择要使用的 Azure 操作系统版本...但我不知道这是否属实,如果是,我找不到在哪里来选择。我可以使用预先启用 http 的版本吗?

我也尝试过blowery http压缩模块,但没有结果。

有人对如何实现这一目标有任何最新建议吗?即与当前版本的 Azure 操作系统相关的建议。

干杯!

史蒂文

更新:我编辑了上面的代码来修复 web.config 代码段中的类型。

更新 2: 使用下面答案中显示的 Whatsmyip URL 测试响应表明,我的 service.svc 的 JSON 响应在没有任何压缩的情况下返回,但返回的是静态 HTML 页面 正在通过 gzip 压缩返回。任何有关如何压缩 JSON 响应的建议将不胜感激!

更新 3: 尝试使用大于 256KB 的 JSON 响应,看看问题是否是由于 JSON 响应小于此值(如下面的评论中所述)所致。不幸的是,响应仍未压缩。

最佳答案

嗯,花了非常很长时间......但我终于解决了这个问题,我想为其他正在努力的人发布答案。解决方案非常简单,我已经验证它确实有效!!

编辑您的 ServiceDefinition.csdef 文件以将其包含在 WebRole 标记中:

    <Startup>
      <Task commandLine="EnableCompression.cmd" executionContext="elevated" taskType="simple"></Task>
    </Startup>

在您的网络角色中,创建一个文本文件并将其另存为“EnableCompression.cmd”

EnableCompression.cmd 应包含以下内容:

%windir%\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True /commit:apphost
%windir%\system32\inetsrv\appcmd set config  -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost

..就是这样!完毕!这可以对 web 角色返回的 json 进行动态压缩,我认为我在某处读到的该角色有一个相当奇怪的 mime 类型,因此请确保准确复制代码。

https://stackoverflow.com/questions/2775261/

相关文章:

javascript - 保留未定义的 JSON.stringify 否则将删除

python - 将 JSON 数组转换为 Python 列表

java - Android 上的最佳 REST 客户端框架/实用程序

python - 如何在 Python 中将数字列表转换为 jsonarray

java - Maven 与 npm 类似吗?

asp.net - 如何使用 IIS 7.5 压缩来自 ASP.NET MVC 的 Json 结果

java - Gson:有没有更简单的方法来序列化 map

javascript - 这个简单的字符串是否被认为是有效的 JSON?

json - JSON 有哪些好的 CLI 工具?

javascript - 将 HTML 映射到 JSON