2010-10-12 3 views
6

Ho una classe chiamata Global che deriva da HttpApplication.Confuso su global.asax?

Stranamente, vedo un sacco di metodi all'interno Global che assomigliano:

void Application_Start(object sender, EventArgs e) 
{ 
} 

Il codice è sicuramente in esecuzione all'interno di questo metodo, in modo che il metodo viene chiamato da qualche parte, ma dove? I metodi non sono contrassegnati come sovraccarico?

In secondo luogo, ho derivato una classe da Global, chiamiamola GlobalFoo.

Ancora una volta, se creo un metodo chiamato Application_Start() verrà chiamato all'interno della mia classe derivata, altrimenti non verrà chiamato nulla che sia in Global, quindi potrei anche derivare da una classe vuota.

Qualcuno può offrire qualche consiglio? Mi manca una parte fondamentale di ASP.NET?

risposta

1

so the method is being called from somewhere, but where?

Questo funzioni vengono chiamate dal pool di applicazioni (da ogni pool che si dispone di assegnare), per segnalare eventi di avvio/fine dell'applicazione e aiutare il vostro con inizializzazioni.

Ogni pool assegnato per l'esecuzione dell'applicazione Web esegue tali funzioni.

asp.net è aiutandoti a creare oggetti diversi/codice esterno o non che può essere eseguito insieme, e questo è perché vedi che tutto il tuo codice registrato eseguito. È un aiuto per creare più di una routine di "avvio" che fa pensare in modo diverso.

Questo is an example, questo modulo controlla da solo il protocollo sicuro ... e non è necessario modificare nulla sul proprio codice, basta registrarlo.

-1

Il file Global.asax è un file opzionale utilizzato per dichiarare e gestire gli eventi e gli oggetti dell'applicazione e a livello di sessione per un sito web ASP.NET in esecuzione su un Web server IIS

alcuni degli eventi chiave in questo file sono:

  • Application_Init: si avvia quando l'applicazione viene inizializzata per la prima volta.
  • Application_Start: avvia la prima volta che viene avviata un'applicazione.
  • Session_Start: avvia la prima volta all'avvio della sessione di un utente.
  • Application_BeginRequest: si attiva ogni volta che arriva una nuova richiesta.
  • Application_EndRequest: si avvia quando l'applicazione termina.
  • Application_AuthenticateRequest: indica che una richiesta è pronta per essere autenticata.
  • Application_Error: si avvia quando si verifica un errore non gestito all'interno dell'applicazione.
  • Session_End: si attiva ogni volta che una singola sessione utente termina o scade.
  • Application_End: si avvia quando l'applicazione termina o scade (in genere utilizzato per la logica di pulizia dell'applicazione).

Per un elenco completo degli eventi Global.asax, vedere "Global.asax Events".

+0

Non mi interessa davvero degli eventi in sé, sono confuso su dove/come vengono chiamati – maxp

0

IIS chiama i diversi eventi Global.asax tramite il filtro isapi di asp.net.

Forse this article contribuirà a spiegare.