Me pregunto bajo qué circunstancias debo poner el código de inicialización de la aplicación en Application_Start()
frente a Init()
en mi archivo Global.asax
?Cuándo utilizar Application_Start vs Init en Global.asax?
La distinción entre los dos no me parece muy obvia, aparte de Application_start
se llama primero, luego Init()
.
- ¿Por qué debería usar una sobre la otra?
- ¿Realmente hace la diferencia?
- ¿Qué cambios en el estado de la aplicación entre los dos eventos?
Hasta ahora el único puntero reales que puedo encontrar es que IHttpModule
Sólo hay un método Init()
, así que si lo que hago puede en algún momento ser más adecuados para implementar IHttpModule
que debe utilizar el método de Init()
Global.asax
, si nada más por consistencia.
Bit de una pregunta de seguimiento: ¿cuándo se crea una instancia de HttpApplication? Estoy asumiendo cada vez que se reinicie el proceso de trabajo y contendrá una instancia para cada hilo de trabajo. – roryf
@roryf - asp.net mantiene un conjunto de instancias de aplicación que pueden ser reutilizadas. Debajo de las portadas, las solicitudes se atienden utilizando el grupo de subprocesos CLR y las solicitudes entrantes se pondrán en cola más allá de un cierto umbral. Dudo que inicialicen el grupo de instancias de la aplicación a ese nivel de umbral, ya que la mayoría de los sitios no verán ese tipo de tráfico. Sospecho que crean el grupo con un pequeño número de instancias y luego aumentan el tamaño del grupo a medida que aumenta la demanda. –