Saltar al contenido

¿Orden de ejecución de eventos HTTPModule?

Solución:

Tal vez esto ayude

http://support.microsoft.com/kb/307985/en-us/

Una clase HttpApplication proporciona una serie de eventos con los que los módulos se pueden sincronizar. Los siguientes eventos están disponibles para que los módulos se sincronicen en cada solicitud. Estos eventos se enumeran en orden secuencial:

  1. BeginRequest
  2. AuthenticateRequest
  3. AuthorizeRequest
  4. ResolveRequestCache
  5. AcquireRequestState
  6. PreRequestHandlerExecute
  7. PostRequestHandlerExecute
  8. ReleaseRequestState
  9. UpdateRequestCache
  10. EndRequest

Los siguientes eventos están disponibles para que los módulos se sincronicen para cada transmisión de solicitud. El orden de estos eventos no es determinista.

  • PreSendRequestHeaders
  • PreSendRequestContent
  • Error

Consulte el artículo para obtener información completa.

Documentación de MSDN Library:

  • Descripción general del ciclo de vida de la aplicación ASP.NET para IIS 5.0 y 6.0
  • Descripción general del ciclo de vida de la aplicación ASP.NET para IIS 7.0

Estos son los eventos (en negrita) y otros pasos en la canalización de solicitudes para ASP.NET 4.0:

  1. Valide la solicitud, que examina la información enviada por el navegador y determina si contiene marcas potencialmente maliciosas.
  2. Realice la asignación de URL, si se ha configurado alguna URL en la sección UrlMappingsSection del archivo Web.config.
  3. Levante el BeginRequest evento.
  4. Levante el AuthenticateRequest evento.
  5. Levante el PostAuthenticateRequest evento.
  6. Levante el AuthorizeRequest evento.
  7. Levante el PostAuthorizeRequest evento.
  8. Levante el ResolveRequestCache evento.
  9. Levante el PostResolveRequestCache evento.
  10. [IIS 5.0/6.0] Según la extensión del nombre de archivo del recurso solicitado (asignado en el archivo de configuración de la aplicación), seleccione una clase que implemente IHttpHandler para procesar la solicitud. Si la solicitud es para un objeto (página) derivado de la clase Page y la página debe compilarse, ASP.NET compila la página antes de crear una instancia de la misma. [IIS 7.0] Levante el MapRequestHandler evento. Se selecciona un controlador apropiado en función de la extensión del nombre de archivo del recurso solicitado. El controlador puede ser un módulo de código nativo como IIS 7.0 StaticFileModule o un módulo de código administrado como la clase PageHandlerFactory (que maneja archivos .aspx).
  11. Levante el PostMapRequestHandler evento.
  12. Levante el AcquireRequestState evento.
  13. Levante el PostAcquireRequestState evento.
  14. Levante el PreRequestHandlerExecute evento.
  15. Llame al método ProcessRequest (o la versión asincrónica IHttpAsyncHandler.BeginProcessRequest) de la clase IHttpHandler adecuada para la solicitud. Por ejemplo, si la solicitud es para una página, la instancia de la página actual maneja la solicitud.
  16. Levante el PostRequestHandlerExecute evento.
  17. Levante el ReleaseRequestState evento.
  18. Levante el PostReleaseRequestState evento.
  19. Realice un filtrado de respuestas si la propiedad Filtro está definida.
  20. Levante el UpdateRequestCache evento.
  21. Levante el PostUpdateRequestCache evento.
  22. [IIS 7.0] Levante el LogRequest evento.
  23. [IIS 7.0] Levante el PostLogRequest evento.
  24. Levante el EndRequest evento.
  25. Levante el PreSendRequestHeaders evento.
  26. Levante el PreSendRequestContent evento.

Nota: Los eventos MapRequestHandler, LogRequest y PostLogRequest solo se admiten si la aplicación se ejecuta en modo integrado en IIS 7.0 y con .NET Framework 3.0 o posterior.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *