2010-01-21 7 views
5

Ho un semplice HTTPModule che esegue una gestione dello stato della sessione personalizzata.JS, Immagini e CSS intercettati da HTTPModule

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

e

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

Quando ho eseguito questo codice con i punti di interruzione, ho visto che questo modulo ottenuto invocata anche per i file statici, come immagini, js e css. Qualcuno ha provato questo? Penso che i moduli HTTP si siano limitati agli eventi nella pipeline http per le pagine di asp.net. Si collegano anche alle risorse statiche? O è solo con cassini?

Ambiente: VS2008 - server di cassini

PS: ho provato con win2k8 IIS7 nel nostro sandbox (kinda nuovo), e ha cercato di scrivere in un file di log (come non abbiamo VS lì), ma non è stato possibile scrivere nel file di registro. Sono sicuro che abbia qualche problema di permessi di scrittura. Qualcuno mi può puntare a qualche risorsa che mi dice come impostare i permessi di scrittura per le directory quando si esegue ASP.net con IIS7 in W2k8

Edit1: ho capito che l'utilizzo di gasdotto integrato si estenderebbe le tubazioni HTTP per le risorse statiche e gestiti allo stesso modo http://aspnet.4guysfromrolla.com/articles/122408-1.aspx e http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

Stiamo utilizzando la classica pipeline nel nostro prodotto. Ma ancora interessato a sapere cosa hanno provato le altre persone.

Question2: Utilizzando IIS7 in modalità integrata, diminuirà le prestazioni? Supponiamo che tu abbia un paio di moduli che si collegano alla pipeline, quanto potrebbe essere l'impatto sulle prestazioni? Sarebbe bello se qualcuno potesse indicarmi alcuni studi di base fatti per questo.

risposta

12
+0

grazie. aggiunto questo al todo per http://cassinidev.codeplex.com –

+0

La tua "nota per se stessi" è d'oro massiccio! Upvotes! – jerhewet

+0

C'è un bel modo per ottenere questo in IIS6? So che è leggermente non correlato alla domanda, ma sarebbe un buon riferimento per qualcuno che atterra qui, come me, a causa del titolo della domanda da solo. –

0

Sì, verrà chiamato per qualsiasi tipo di file.

È tipico in questi moduli filtrare tutto ciò che non ti interessa per ex. controllando se HttpContext.Request.Url.AbsolutePath contiene "/ _layouts" in SharePoint.

+0

C'è un modo configurare i moduli in modo tale che essi solo ottenere collegato al gasdotto per le estensioni specifiche (come aspx o asmx o il mio ASHX personalizzato)? – ram

+0

Questa risposta è specifica per il server Web di sviluppo ASP.NET (Cassini) - la tua domanda menziona IIS7 e Cassini. Cassini indirizzerà TUTTE le richieste a qualsiasi HttpModules.Si noti che questo comportamento è diverso da IIS6 o IIS7 (richiede una configurazione diversa per ottenere lo stesso comportamento su ciascuna) – Adam