IIS aspnet HTTP 壓縮 與Ajax
IIS aspnet HTTP 壓縮 與Ajax 最近在做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大小,這會大大加快傳輸的速度。
總體效果不錯。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1499862
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
附註:
在運行微軟Internet Information Services (IIS) 6.0的Windows Server 2003系統上,使用GNU zip(Gzip)進行壓縮的靜態檔案可能會不可用或包含有來自Web伺服器中其他檔案的內容。如果出現這種情況,返回用戶端的頁面將會產生出錯,而且還可能造成存取違規的現象。
上述問題可能影響到“Outlook網路訪問(OWA)”使用者,並可能導致代碼錯誤資訊返回到OWA頁面上。
微軟已針對上述問題發布了修複補丁,其版本號碼為831464,大小為430 KB。該補丁對應微軟第831464號知識庫文章。
點擊這裡下載該補丁的簡體中文版。
http://www.cnblogs.com/shanyou/archive/2005/08/20/218927.html
http://www.cnblogs.com/dudu/archive/2004/12/12/76085.html
http://blog.joycode.com/moslem/archive/2005/08/19/62173.aspx
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
www.asp.net處的資料
http://www.asp.net/ControlGallery/Disclaimer.aspx?downloadControl=696&tabindex=2