asp.net删除未使用的httpmodules

时间:2008-11-18 01:48:13

标签: asp.net performance

我正在查看有关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>

有没有人知道每个地方的描述在哪里,有些是显而易见的但并非全部,我在Google上已经有一段时间了。

1 个答案:

答案 0 :(得分:7)

来自ScottGu的评论,通过Mads Kristensen的博客。

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

  

一般来说,你可以得到一些非常小的   表现胜利使用这种方法 -   虽然我可能不建议   正在做。原因是有的   ASP.NET的功能(表单身份验证,   角色,缓存等等当然会   删除后停止工作   他们依赖的模块。尝试去   弄清楚为什么会发生这种情况   常常令人困惑。