c# asp.net asp.net-mvc-3 .net-4.0

c# - ¿Cuándo se activa para ejecutar el PreApplicationStartMethod?



asp.net asp.net-mvc-3 (2)

Cuando se utiliza el método WebActivator PreApplicationStart, ¿qué es lo que realmente activa los métodos vinculados a esto para que se ejecute? ¿Cuándo IIS7 ha iniciado el grupo de aplicaciones? ¿Cuándo se realiza la primera solicitud al servidor web? ¿Algo más? Si tiene la respuesta, ¿podría también proporcionar una referencia de dónde obtuvo esta información?

¿Alguno de estos cambios en IIS 7.5?


Un pequeño suplemento a la respuesta de @ VinayC: si agrega un punto de interrupción en su PreApplicationStartMehod y depura su aplicación web, puede ver que se invoca en cada solicitud. Confirmé fácilmente que este no es el comportamiento habitual al escribir en un archivo de registro en mi Método de inicio de aplicación previa. Cuando no se adjunta al depurador, este método no se ejecuta en todas las solicitudes.


WebActivator PreApplicationStart basa en ASP.NET PreApplicationStartMethodAttribute (consulte this enlace para ver cómo funciona el activador web).

PreApplicationStartMethodAttribute funciona cuando el tiempo de ejecución de ASP.NET inicia la aplicación y el código se ejecuta desde el principio incluso antes de que se active el evento app_start. Entonces, para responder a su pregunta, el desencadenante se producirá cuando se realice la primera solicitud al servidor web (que a su vez dará inicio al inicio de la aplicación).

Tenga en cuenta que el activador está relacionado con el inicio de la aplicación ASP.NET y no con el grupo de aplicaciones. Es posible que su grupo de aplicaciones se esté ejecutando debido a alguna otra aplicación (puede ser una aplicación que no sea ASP.NET), pero cuando llega la primera solicitud de la aplicación ASP.NET, este desencadenante sucedería (para una aplicación en particular) porque la aplicación se inicia.

Si está utilizando la auto-start IIS reiniciará su aplicación en el reciclaje de su grupo de aplicaciones y, por lo tanto, se PreApplicationStart .