我在Microsoft Azure上托管了一个MVC 5应用程序(C#)。该应用程序将一些相当大的JSON文档从服务器返回给客户端。有谁知道如何打开HTTP压缩,以便这些文件被压缩到客户端?我用谷歌搜索了这个,但我找不到至少3-4岁的东西。
我认为另一种方法是使用压缩实用程序仅压缩JSON文档。我尝试过LZ-String,但似乎无法使用C#版本在服务器上压缩文档,并使用JavaScript版本在客户端上解压缩,并且可以识别生成的JSON文档。
答案 0 :(得分:11)
要启用压缩JsonResult
MVC控制器的操作,您需要从web.config
文件启用动态压缩:
<system.webServer>
<urlCompression doDynamicCompression="true" />
<httpCompression>
<dynamicTypes>
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
</staticTypes>
</httpCompression>
</system.webServer>
具有上述配置的工作示例发布在Azure网站的免费层上,可以使用简单的HTTP GET请求进行测试:
GET https://double.azurewebsites.net/Home/SomeJson HTTP/1.1
User-Agent: Fiddler
Accept-Encoding: gzip, compress
Host: double.azurewebsites.net
注意,Accept-Encoding
标头是绝对必须触发服务器端压缩的。另请注意mime类型application/json; charset=utf-8
,它是ASP.NET MVC5 JsonResult提供的mime类型。