2012-04-13 31 views
3

我有一個運行在啓用了壓縮的IIS 7.5上的MVC3站點。在application/xhtml + xml內容類型上的GZip壓縮在IIS 7.5/MVC中不工作

GZip壓縮正在網站的所有頁面上工作,除了幾個頁面,我在控制器(Response.ContentType = "application/xhtml+xml";)中手動將內容類型更改爲application/xhtml+xml(這對於各種原因是必需的)。

這種內容類型會導致GZip不起作用,有沒有辦法解決這個問題?

回答

3

application/xhtml+xml不是IIS壓縮知道要壓縮的內建MIME類型之一。您必須明確地爲此mime類型啓用壓縮。

我假設你想要啓用壓縮,無論它是靜態文件還是動態生成。爲此,您必須將mime-type添加到機器級配置的system.webServer/httpCompressionstaticTypesdynamicTypes部分。其中一個簡單的方法與部署腳本要做到這一點,只需使用appcmd.exe像這樣:

添加用於壓縮靜態內容的支持

appcmd.exe set config -section:system.webServer/httpCompression /+"staticTypes.[mimeType='application/xhtml%%2bxml',enabled='True']" /commit:apphost 

添加壓縮動態內容的支持

appcmd.exe set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/xhtml%%2bxml',enabled='True']" /commit:apphost 

很明顯,您可以對可能需要壓縮的任何其他內容類型使用相同的方法。