我正在查看有关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上已经有一段时间了。
答案 0 :(得分:7)
来自ScottGu的评论,通过Mads Kristensen的博客。
一般来说,你可以得到一些非常小的 表现胜利使用这种方法 - 虽然我可能不建议 正在做。原因是有的 ASP.NET的功能(表单身份验证, 角色,缓存等等当然会 删除后停止工作 他们依赖的模块。尝试去 弄清楚为什么会发生这种情况 常常令人困惑。