2010-01-21 13 views
5

Tengo un HTTPModule simple que hace una administración de estado de sesión personalizada.JS, imágenes y CSS interceptados por HTTPModule

public void Init(HttpApplication context) 
     { 
      context.AcquireRequestState += new EventHandler(ProcessBeginRequest); 
      ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In Init " + HttpContext.Current.Request.Url.AbsoluteUri); 
     } 

y

public void ProcessBeginRequest(object sender, EventArgs e) 
     { 
      HttpApplication application = sender as HttpApplication; 
      ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest "); 
      if (application != null) 
      { 
       string requestURL = application.Context.Request.Url.ToString(); 
       ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest " + requestURL); 
      } 
      return; 
     } 

Cuando me encontré con este código con puntos de interrupción, he visto que este módulo consiguió invocada incluso para archivos estáticos como imágenes, js y css. Alguien ha experimentado esto ? Estoy pensando en que los módulos HTTP solo se conectaban a los eventos en la tubería http para las páginas asp.net. ¿También se conectan a los recursos estáticos? ¿O solo con cassini?

Medio Ambiente: VS2008 - servidor de Cassini

PS: Yo probé con Win2k8 IIS7 en nuestra caja de arena (algo nuevo), y el tratado de escribirlo en un archivo de registro (ya que no tenemos VS allí), pero no pudo escribir en el archivo de registro. Estoy seguro de que es un problema de permisos de escritura. ¿Alguien me puede indicar algún recurso que me dice cómo configurar permisos de escritura para directorios al ejecutar ASP.net con IIS7 en W2k8

Edit1: entiendo que el uso de Integrated pipeline extendería las tuberías http para recursos estáticos y administrados por igual http://aspnet.4guysfromrolla.com/articles/122408-1.aspx y http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

Estamos utilizando la tubería clásica en nuestro prod. Pero aún está interesado en saber lo que otras personas han experimentado.

Pregunta 2: Al usar IIS7 en modo integrado, ¿disminuirá el rendimiento? Supongamos que tiene un par de módulos conectando con la tubería, ¿cuánto afectaría el rendimiento? Sería bueno que alguien me señale algunos estudios básicos realizados para esto.

Respuesta

12
+0

gracias. agregué esto al todo para http://cassinidev.codeplex.com –

+0

¡Su "nota a sí mismo" es oro sólido! Upvotes! – jerhewet

+0

¿Hay alguna manera de lograr esto en IIS6? Sé que no tiene ninguna relación con la pregunta, pero sería una buena referencia para alguien que aterrice aquí, como yo, solo por el título de la pregunta. –

0

Sí, se utilizará para cualquier tipo de archivo.

Es típico en esos módulos filtrar lo que no le interesa. comprobando si HttpContext.Request.Url.AbsolutePath contiene '/ _layouts' en SharePoint.

+0

¿Hay alguna manera configurar los módulos de tal manera que sólo se les conectado a la tubería para extensiones específicas (como aspx o asmx o mi costumbre ashx)? – ram

+0

Esta respuesta es específica para el servidor web de desarrollo ASP.NET (Cassini): su pregunta menciona IIS7 y Cassini. Cassini enrutará TODAS las solicitudes a cualquier HttpModules.Tenga en cuenta que este es un comportamiento diferente a IIS6 o IIS7 (necesita una configuración diferente para obtener el mismo comportamiento en cada uno) – Adam

Cuestiones relacionadas