ASP.NET 2.0中包涵了很多秘密,當你發現它時,可以為你的程序帶來更大的性能和擴展性提升。例如 ,了解了在Membership和Profile provider提供程序中所隱藏的秘密瓶頸後就可以方便地的解決驗證問題 並使得授權操作的速度加快。
另外,ASP.NET HTTP管道為了避免針對每次請求所要執行的必要代碼而發生阻塞。不僅那樣,ASP.NET 工作者進程能夠推動其限制而獲得更高的性能。頁面碎片在浏覽器端的輸出緩存(不是在服務器端)可以 顯著節約回訪者的下載時間。按需求的用戶界面下載可以讓你的站點給人快速流暢的感覺。
最後內容傳輸網絡和HTTP緩存頭的恰當使用可以讓你的網站驚人的快速。在這篇文章中,你將學習到 這些技術,它能夠使你的ASP.NET應用程序獲得更高的性能、更好的擴展性 ,並且可以在任何ASP.NET的 網站上實現,尤其是那些應用了ASP.NET 2.0 Membership 和Profile provider的站點。
ASP.NET管道優化
位於請求管道中的很多ASP.NET默認的HttpModules用於攔截客戶端所發出的每個請求。例如, SessionStateModule攔截每個請求,並解析對應的會話cookie,然後在HttpContext中加載適當的會話。 實時證明,並不是所有的modules都是必要的。
例如,如果你不使用Membership和Profile provider提供程序,那麼你就可以不需要 FormsAuthentication module。如果你需要為你的用戶使用Windows驗證,那麼你就可以不需要 WindowsAuthentication。位於管道中的這些modules僅僅在每次請求到來時執行一些不必要的代碼。
默認的modules都定義在了machine.config文件中(位於 $WINDOWS$\Microsoft.NET\Framework\$VERSION$\CONFIG目錄下)。
<httpModules> <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" /> <add name="Session" type="System.Web.SessionState.SessionStateModule" /> <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" /> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> <add name="PassportAuthentication" type="System.Web.Security.PassportAuthenticationModule" /> <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" /> <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" /> <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </httpModules>