2013-10-19 148 views
1

我確實在我的IIS 7.5 Web服務器上正確設置了gzip,它在大多數情況下都能正常工作。如何從ASP.NET MVC中的JsonResult操作返回gzip json?

但我可以看到響應頭顯示我對JsonResult方法所做的任何請求都沒有被壓縮。我需要更改什麼以便JsonResult通過Content-Encoding返回數據:gzip?

這是標題的截圖調用JsonResult方法時:相比於調用的東西,返回HTML,如的RenderPartial()時,頭部的截圖

enter image description here

enter image description here

編輯:這些是我從applicationHost.config的壓縮設置:

<httpCompression 
     directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
     <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
     <dynamicTypes> 
      <add mimeType="text/*" enabled="true" /> 
      <add mimeType="application/json" enabled="true" /> 
      <add mimeType="application/json; charset=utf-8" enabled="true" />     
      <add mimeType="message/*" enabled="true" /> 
      <add mimeType="application/x-javascript" enabled="true" /> 
      <add mimeType="*/*" enabled="false" /> 
     </dynamicTypes> 
     <staticTypes> 
      <add mimeType="text/*" enabled="true" /> 
      <add mimeType="message/*" enabled="true" /> 
      <add mimeType="application/json" enabled="true" /> 
      <add mimeType="application/json; charset=utf-8" enabled="true" />     
      <add mimeType="application/x-javascript" enabled="true" /> 
      <add mimeType="application/atom+xml" enabled="true" /> 
      <add mimeType="application/xaml+xml" enabled="true" /> 
      <add mimeType="*/*" enabled="false" /> 
     </staticTypes> 
    </httpCompression> 
+0

如果更改<添加mime類型= 「*/*」>已啓用=真,並在JSON得到壓縮?這篇文章提到調試該場景(http://blogs.msdn.com/b/asiatech/archive/2013/02/19/unable-to-compress-json-result-in-iis-7-x.aspx) – Jedidja

+0

你的applicationHost.config和你的web.config中的urlCompression設置是什麼? – brucwhi

回答

1

請確保您的IIS applicationHost.config文件位於%WinDir%\ System32 \ inetsrv \ config \ applicationHost.config包含以下代碼塊。

<system.webServer> 
    <urlCompression doDynamicCompression="true" /> 
    <httpCompression> 
     <dynamicTypes> 
     <add mimeType="application/json" enabled="true" /> 
     <add mimeType="application/json; charset=utf-8" enabled="true" />  
     </dynamicTypes> 
    </httpCompression> 
</system.webServer> 
+0

不幸的是,這些設置已經設置爲TRUE。我用我的壓縮設置更新了這個問題。 –

0

你的配置看起來正確。可能你還沒有達到IIS開始壓縮所有內容的門檻。

試試這個: 在IIS管理器中,轉到配置編輯器,找到system.WebServer/serverRuntime。 查看frequentHitThreshold和frequentHitTimePeriod設置,然後將其刪除,以確保在測試時達到閾值。

這裏有更多閱讀: http://blogs.msdn.com/b/asiatech/archive/2013/02/19/unable-to-compress-json-result-in-iis-7-x.aspx

+0

對不起,我試着設置'frequentHitThreshold = 1',但這仍然沒有幫助。 –

相關問題