最近在做IIS ASPNET的項目,對首頁訪問速度要求比較高。
通過配置AppPool可以有效提高IIS的響應速度。
啟用IIS的HTTP壓縮後,對於ASPX的程式處理和Ajax方式調用產生了問題。
IIS的HTTP壓縮配置比較簡單不能支援比較靈獲得配置。
我搜 找到了 blowery.Web.HttpCompress(線上文檔) 這個在效能上評價還不錯。
配置
Web.config
<configSections>
<sectionGroup name="blowery.web">
<section name="httpCompress" type="blowery.Web.HttpCompress.SectionHandler, blowery.Web.HttpCompress"/>
</sectionGroup>
</configSections>
blowery.web
<blowery.web>
<httpCompress preferredAlgorithm="gzip" compressionLevel="high">
<excludedMimeTypes>
<add type="image/jpeg"/>
<add type="image/gif"/>
<add type="text/plain"/> <!--解決Ajax回調不支援壓縮格式的問題-->
</excludedMimeTypes>
<excludedPaths>
<add path="NoCompress.aspx"/>
</excludedPaths>
</httpCompress>
</blowery.web>
excludedMimeTypes 包含的在此的Mime類型將不被壓縮
excludedPaths 包含的在此的aspx將不被壓縮
注意原始碼中有一處bug,在處理excludePaths時不起作用
string realPath = "";
try
{
logger.Debug(app.Request.ApplicationPath);
realPath = app.Request.Path.Remove(0, app.Request.ApplicationPath.Length);
}
catch (Exception ex)
{
logger.Debug(ex.Message);
realPath = "/";
}
經測試 一個35K的頁面,可以控制在10~15k大小,這會大大加快傳輸的速度。
總體效果不錯。