start session_end net globales example asp asax abrir asp.net global-asax

asp.net - session_end - Cuándo usar Application_Start vs Init en Global.asax?



web config asp net (2)

Desde los documentos de MSDN :

Los métodos Application_Start y Application_End son métodos especiales que no representan eventos HttpApplication. ASP.NET los llama una vez durante la vigencia del dominio de la aplicación, no para cada instancia de HttpApplication .

En eso:

Se llama una vez para cada instancia de la clase HttpApplication después de que se hayan creado todos los módulos.

ACTUALIZACIÓN: si necesita asegurarse de que un determinado código se llame solo una vez en la aplicación. ciclo de vida, Application_Start es una mejor solución. Ejemplos: configurando log4net?

Me pregunto bajo qué circunstancias debería poner el código de inicialización de la aplicación en Application_Start() vs Init() en mi archivo Global.asax ?

La distinción entre los dos no me parece muy obvia, aparte de que Application_start se llama primero, luego Init() .

  • ¿Por qué debería usar uno sobre el otro?
  • ¿Realmente hace la diferencia?
  • ¿Qué cambios en el estado de la aplicación entre los dos eventos?

Hasta ahora, el único puntero real que puedo encontrar es que IHttpModule solo tiene un método Init() , así que si lo que estoy haciendo puede ser mejor en algún momento para implementar IHttpModule , debería usar el método Init() de Global.asax , si nada más por consistencia.


Hay diferencias entre ellos. El evento Application_Start () se invoca solo una vez, mientras que el método Init () se invoca cada vez que se crea una instancia de la aplicación.