asp.net - pagina - Orden de ejecución de evento HTTPModule?
que es asp net (4)
¿Alguien sabe de un sitio o página, o sabe el orden de ejecución de los eventos de la clase HTTPApplication para la ejecución del evento HTTPModule?
Encontré la documentación de MSDN para todos los eventos, pero no muestra una lista de pasos del proceso y no he podido encontrar uno.
Desea llamar al método de almacenamiento en caché en el evento PreSendRequestContent de httpmodule. El problema es que hay un encabezado y un pie de página web agregados según el requisito del cliente en mi aplicación y no pude almacenar en caché las imágenes de contenido, javascript y css. Actualmente estoy utilizando el método ReleaseRequestState de httpmodule.
Documentación de MSDN Library:
- Descripción del ciclo de vida de las aplicaciones ASP.NET para IIS 5.0 y 6.0
- Descripción del ciclo de vida de la aplicación ASP.NET para IIS 7.0
Estos son los eventos (en negrita) y otros pasos en el proceso de solicitud para ASP.NET 4.0:
- Valide la solicitud, que examina la información enviada por el navegador y determina si contiene marcas potencialmente maliciosas.
- Realice la asignación de URL, si se ha configurado alguna URL en la sección UrlMappingsSection del archivo Web.config.
- Levante el evento BeginRequest .
- Levante el evento AuthenticateRequest .
- Levante el evento PostAuthenticateRequest .
- Levante el evento AuthorizeRequest .
- Levante el evento PostAuthorizeRequest .
- Levante el evento ResolveRequestCache .
- Levante el evento PostResolveRequestCache .
- [IIS 5.0 / 6.0] En función de la extensión del nombre del 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 necesita compilarse, ASP.NET compila la página antes de crear una instancia de la misma. [IIS 7.0] Levante el evento MapRequestHandler . 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 el StaticFileModule de IIS 7.0 o un módulo de código administrado, como la clase PageHandlerFactory (que maneja los archivos .aspx).
- Levante el evento PostMapRequestHandler .
- Levante el evento AcquireRequestState .
- Levante el evento PostAcquireRequestState .
- Levante el evento PreRequestHandlerExecute .
- Llame al método ProcessRequest (o la versión asíncrona IHttpAsyncHandler.BeginProcessRequest) de la clase IHttpHandler apropiada para la solicitud. Por ejemplo, si la solicitud es para una página, la instancia de página actual maneja la solicitud.
- Levante el evento PostRequestHandlerExecute .
- Levante el evento ReleaseRequestState .
- Levante el evento PostReleaseRequestState .
- Realice un filtrado de respuesta si la propiedad Filtro está definida.
- Levante el evento UpdateRequestCache .
- Levante el evento PostUpdateRequestCache .
- [IIS 7.0] Levante el evento LogRequest .
- [IIS 7.0] Levante el evento PostLogRequest .
- Levante el evento EndRequest .
- Levante el evento PreSendRequestHeaders .
- Levante el evento PreSendRequestContent .
Nota: Los eventos MapRequestHandler, LogRequest y PostLogRequest son compatibles solo si la aplicación se ejecuta en modo integrado en IIS 7.0 y con .NET Framework 3.0 o posterior.
Tal vez esto ayude
http://support.microsoft.com/kb/307985/en-us/
Una clase HttpApplication proporciona una serie de eventos con los cuales los módulos se pueden sincronizar. Los siguientes eventos están disponibles para que los módulos se sincronicen con cada solicitud. Estos eventos se enumeran en orden secuencial:
- BeginRequest
- AuthenticateRequest
- AuthorizeRequest
- ResolveRequestCache
- AcquireRequestState
- PreRequestHandlerExecute
- PostRequestHandlerExecute
- ReleaseRequestState
- UpdateRequestCache
- EndRequest
Los siguientes eventos están disponibles para que los módulos se sincronicen con cada transmisión de solicitud. El orden de estos eventos no es determinista.
- PreSendRequestHeaders
- PreSendRequestContent
- Error
Vea el artículo para obtener información completa.
BeginRequest
La solicitud ha comenzado. Si necesita hacer algo al comienzo de una solicitud (por ejemplo, mostrar pancartas publicitarias en la parte superior de cada página o alguna inicialización variable).
AuthenticateRequest
Si desea conectar su propio esquema de autenticación personalizado (por ejemplo, busque un usuario contra una base de datos para validar la contraseña o verificar la información del encabezado en la solicitud HTTP).
AuthorizeRequest
Este evento se usa internamente para implementar mecanismos de autorización (por ejemplo, para almacenar sus listas de control de acceso (ACL) en una base de datos en lugar de en el sistema de archivos).
ResolveRequestCache
Este evento determina si una página puede ser servida desde el Caché de Salida. Si desea escribir su propio módulo de almacenamiento en caché (por ejemplo, crear un caché basado en archivos en lugar de un caché de memoria), sincronice este evento para determinar si se va a servir la página desde el caché o se generará una página nueva.
AcquireRequestState
El estado de la sesión se recupera de la tienda de estado. Si desea construir su propio módulo de gestión de estado, sincronice este evento para obtener el estado de sesión de su almacén de estado.
PreRequestHandlerExecute
Este evento ocurre antes de que se ejecute el controlador HTTP.
PostRequestHandlerExecute
Este evento ocurre después de que se ejecuta el controlador HTTP.
ReleaseRequestState
El estado de la sesión se almacena nuevamente en el almacén de estado. Si está creando un módulo de estado de sesión personalizado, debe almacenar su estado en la tienda de estado.
UpdateRequestCache
Este evento escribe la salida nuevamente en el Caché de Salida.
EndRequest
La solicitud ha sido completada.