2008-11-18 48 views
5

我正在尋找大量關於asp.net的性能建議。特別是關掉不用的HttpModules部分:asp.net刪除未使用的httpmodules

<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="RoleManager" type="System.Web.Security.RoleManagerModule"/> 
    <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule"/> 
    <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule"/> 
    <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule"/> 
    <add name="Profile" type="System.Web.Profile.ProfileModule"/> 
    <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
</httpModules> 

有一堆這裏列出的HTTP模塊,我相當積極的並不是所有的人正在使用的應用程序。刪除未使用的HTTP模塊肯定會帶來輕微的性能提升,因爲執行的工作量會減少。假設應用程序中不需要Windows身份驗證。要刪除繼承的設置,請在web.config應用程序的httpModules部分中添加一個remove元素,並指定不需要的模塊的名稱。 例子:

<httpModules> 
     <remove name="WindowsAuthentication" /> 
    </httpModules> 

有誰知道那裏是什麼呢各自的描述,有些是顯而易見的,但不是全部,我已經serached對谷歌相當長一段時間。

回答

7

來自ScottGu對此的評論,通過Mads Kristensen的博客。

http://madskristensen.net.web7.reliabledomainspace.com/post/Remove-default-HTTP-modules-in-ASPNET.aspx

一般來說,你可以得到一些非常小的 性能贏得使用這種方法 - 雖然我可能會建議不要 這樣做。原因是當你刪除它們所依賴的 模塊時,ASP.NET的某些功能(表單驗證, 角色,緩存等)當然會停止工作。試圖 找出爲什麼會發生這種情況, 經常會令人困惑。

+0

死鏈接....... – UpTheCreek 2011-05-17 13:38:01