miércoles, 28 de enero de 2009

ASP.NET Performance Tip: Eliminar HttpModules innecesarios

En cada solicitud de ASP.NET se ejecutan una serie de módulos para completar diferentes tareas. Por ejemplo, el módulo SessionStateModule intercepta cada solicitud, recupera la cookie de sesión  y carga los datos de sesión en el HttpContext. No siempre son necesarios todos los módulos, por ejemplo, si estás usando FormsAuthentication entonces quizás no necesites los módulos de WindowsAuthentication o PassportAuthenticacion.

De forma predeterminada, el archivo machine.config define los siguientes módulos:

<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>

Los módulos que no utilizamos en nuestra aplicación ASP.NET, podemos removerlos desde el web.config:

<httpModules>
   <remove name="WindowsAuthentication" />
   <remove name="PassportAuthentication" />
   <remove name="AnonymousIdentification" />
   <remove name="UrlAuthorization" />
   <remove name="FileAuthorization" />
</httpModules>

Esto reducirá carga de trabajo innecesaria en cada solicitud ASP.NET, y nuestras aplicaciones estarán un poco más optimizadas.

Pueden encontrar este y otros tips de performance en el siguiente enlace:
http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx

En futuros posts, continuaré sumando más tips de performance, como Compresión Http, Optimización del ViewState, Combinación de Scripts y Css, etc. Incluiré código fuente y herramientas para hacer que nuestras aplicaciones ASP.NET se ejecuten cada vez más rápido.

Espero que sirva.
Saludos, Gus

No hay comentarios: