10

我正在使用MVC4 WebAPI(RC)的項目。響應不是gzip壓縮(啓用了IIS中的動態壓縮)。MVC4 WebAPI不壓縮GET響應

來自正常MVC控制器的響應被壓縮。我是否需要特定設置才能爲WebAPI響應啓用gzip壓縮?

我可以添加一個自定義壓縮處理程序,但如果可能的話,我只想使用內置的IIS壓縮。

順便說一句,我知道這幾乎是Compress HTTP GET Response的副本,但接受的答案並沒有真正回答我的問題。

+0

是對MIME類型「應用/ JSON啓用動態壓縮;字符集= UTF-8' ?默認情況下,即使啓用動態壓縮,也不啓用 –

+0

@EivindT如何檢查? – Carvellis

+0

您可以在部分的%windir%\ System32 \ inetsrv \ config下的applicationhost.config文件中查找。你不應該編輯文件,而是使用appcmd.exe來改變它,像這樣:http://stackoverflow.com/a/7375645/243936 –

回答

11

是否爲mimetype啓用動態壓縮application/json; charset=utf-8?默認情況下,即使啓用了動態壓縮,也不會啓用該功能。

要查看它是否已啓用,您可以查看文件中%windir%\System32\inetsrv\config的部分。

不應編輯該文件,而是使用appcmd.exe改變這樣的:https://stackoverflow.com/a/7375645/243936

+1

我沒有問題使用記事本手動編輯applicationhost.config文件。所有你需要添加的是一行到httpCompression - > dynamicTypes部分:''。看到這個鏈接的更多細節:http://benfoster.io/blog/aspnet-web-api-compression一旦我這樣做了,我的web api響應被gzipped。 –

0

其實你可以安裝一個NuGet包來實現這一目標,這需要很少的配置,在客戶端你只需要添加接受編碼:gzip。

現在,當ASP.Net能夠在任何Web服務器上運行時,使用這種方法會更好。

在這個視頻中我使用gzip壓縮完整解釋了WebApi。是西班牙語,但你知道「的代碼是一個通用的語言」

NinjaTip #16 | Incluyendo soporte para GZip en WebAPI | C# NinjaTip #16 | Incluyendo soporte para GZip en WebAPI