Primo accesso al ciclo di vita .net
-
20-08-2019 - |
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.
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.