Domanda

Dopo aver esaminato il .net sul ciclo di vita dell'applicazione IIS7:

http://msdn.microsoft.com/en-us/library /ms178473.aspx

Per le massime prestazioni, voglio trovare un modo per avviare il mio codice non appena viene creato l'oggetto HttpContext, ma prima che lo sia HttpApplication. (è facile eseguire il codice dopo che è stata caricata la classe HttpApplication ma prima che uno qualsiasi dei suoi eventi venga attivato utilizzando il contrector di un modulo HTTP in questo modo:

    public class AuthModule : IHttpModule 
    {     
        public AuthModule()
        {
            HttpContext.Current.Response.Write("hello world");
            HttpContext.Current.Response.End();
        }

        #region IHttpModule Members

        public void Dispose()
        {  }

        public void Init(HttpApplication context)
        {   }

        #endregion
    }

So che non avrò accesso all'oggetto Utente, ma non ne avrò bisogno.

È stato utile?

Soluzione

Non puoi mai essere sicuro che il tuo codice inizi prima che venga creata l'istanza di HttpApplication, poiché queste istanze possono essere riutilizzate.

Inoltre, l'esecuzione del codice in questa fase non rientra nell'ambito della pipeline. Dovresti farti chiedere se è davvero una cosa sensata da fare.

E questo che riguarda le prestazioni? Pensi davvero che il tempo per creare un'istanza di HttpApplication si registrerà nelle tue performance?

Fai un passo indietro e riconsidera.

Altri suggerimenti

Guarda gli eventi del ciclo di vita su MSDN . Puoi prendere in considerazione l'utilizzo di uno di questi eventi se desideri qualcosa di precedente ai normali eventi di pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top