JSON压缩无法在Azure上运行

时间:2017-06-21 19:32:26

标签: asp.net-mvc azure web-config gzip http-compression

我正在使用MVC5网络应用,但无法让Azure在我的JsonResults上执行动态压缩。我在Web.config中的以下代码仅在我在本地运行Web应用程序时才有效,但是当我在Azure Web App上部署时,压缩不起作用:

<urlCompression doStaticCompression="true" 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>

我也试过以下,但没有运气:

<urlCompression doStaticCompression="true" doDynamicCompression="true" />
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
  <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>

这个问题真的让我发疯,我认为没有理由为什么这不应该工作,因为我在网上发现这些解决方案的人说他们成功实施了这些解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我终于得到了问题所在:一些防病毒软件(包括我的Bitdefender)会干扰数据压缩机制,所以从我的电脑上我看不到压缩发生的情况,而实际上它完全正常工作使用以下Web.config标记:

<urlCompression doStaticCompression="true" 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>

有关类似问题的更多信息,请参阅以下文章:https://www.stevesouders.com/blog/2009/11/11/whos-not-getting-gzip/