¿Cuál es el propósito de global.asax en asp.net?


100

¿Cómo podemos usar global.asax en asp.net? ¿Y qué es eso?

Respuestas:


119

MSDN tiene un esquema del propósito del archivo global.asax.

Efectivamente, global.asax le permite escribir código que se ejecuta en respuesta a eventos de "nivel del sistema", como el inicio de la aplicación, el final de una sesión, la ocurrencia de un error de aplicación, sin tener que intentar calzar ese código en todos y cada uno de los página de su sitio.

Puede usarlo eligiendo Agregar> Nuevo elemento> Clase de aplicación global en Visual Studio. Una vez que haya agregado el archivo, puede agregar código en cualquiera de los eventos que se enumeran (y se crean de forma predeterminada, al menos en Visual Studio 2008):

  • Application_Start
  • Application_End
  • Session_Start
  • Session_End
  • Application_BeginRequest
  • Application_AuthenticateRequest
  • Error de la aplicación

Hay otros eventos a los que también puede conectarse, como "LogRequest".


2
La entrada para global.asax se ha eliminado de Wikipedia.
Cathy Sullivan

¿Podemos agregar el archivo global.asax para el formulario de Windows?
Jeeva Jsb

@JeevaJsb, no. El contenido de global.asax son (generalmente) eventos que son activados por el ciclo de vida de la aplicación IIS / ASP.net, por lo que no habría nada que active el código en una aplicación WinForms.
Rob

Me pregunto por qué no pueden tener solo un código heredado de la clase HttpApplication y no requerir el archivo asax. El global.asax.cs contiene todas las cosas, así que ¿por qué la necesidad de un archivo asax específico que solo contenga este <% @ Application Codebehind = "Global.asax.cs" Inherits = "XXXXX" Language = "C #"%>
Simple Fellow

67

Explicación de los eventos globales de asax

Application_Init: se activa cuando una aplicación se inicializa o se llama por primera vez. Se invoca para todas las instancias del objeto HttpApplication.

Application_Disposed: se activa justo antes de que se destruya una aplicación. Esta es la ubicación ideal para limpiar los recursos usados ​​anteriormente.

Application_Error: se activa cuando se encuentra una excepción no controlada dentro de la aplicación.

Application_Start: se activa cuando se crea la primera instancia de la clase HttpApplication. Le permite crear objetos a los que pueden acceder todas las instancias de HttpApplication.

Application_End: se activa cuando se destruye la última instancia de una clase HttpApplication. Se activa solo una vez durante la vida útil de una aplicación.

Application_BeginRequest: se activa cuando se recibe una solicitud de aplicación. Es el primer evento que se activa para una solicitud, que a menudo es una solicitud de página (URL) que ingresa un usuario.

Application_EndRequest: el último evento disparado para una solicitud de aplicación.

Application_PreRequestHandlerExecute: se activa antes de que el marco de la página ASP.NET comience a ejecutar un controlador de eventos como una página o un servicio web.

Application_PostRequestHandlerExecute: se activa cuando el marco de la página ASP.NET termina de ejecutar un controlador de eventos.

Applcation_PreSendRequestHeaders: se activa antes de que el marco de la página ASP.NET envíe encabezados HTTP a un cliente solicitante (navegador).

Application_PreSendContent: se activa antes de que el marco de la página ASP.NET envíe contenido a un cliente solicitante (navegador).

Application_AcquireRequestState: se activa cuando el marco de la página ASP.NET obtiene el estado actual (estado de sesión) relacionado con la solicitud actual.

Application_ReleaseRequestState: se activa cuando el marco de la página ASP.NET completa la ejecución de todos los controladores de eventos. Esto da como resultado que todos los módulos de estado guarden sus datos de estado actuales.

Application_ResolveRequestCache: se activa cuando el marco de la página ASP.NET completa una solicitud de autorización. Permite que los módulos de almacenamiento en caché atiendan la solicitud desde el caché, evitando así la ejecución del controlador.

Application_UpdateRequestCache: se activa cuando el marco de la página ASP.NET completa la ejecución del controlador para permitir que los módulos de almacenamiento en caché almacenen respuestas que se usarán para manejar solicitudes posteriores.

Application_AuthenticateRequest: se activa cuando el módulo de seguridad ha establecido la identidad del usuario actual como válida. En este punto, se han validado las credenciales del usuario.

Application_AuthorizeRequest: se activa cuando el módulo de seguridad ha verificado que un usuario puede acceder a los recursos.

Session_Start: se activa cuando un nuevo usuario visita el sitio web de la aplicación.

Session_End: se activa cuando la sesión de un usuario se agota, finaliza o abandona el sitio web de la aplicación.



6

Global.asax es el archivo de aplicación asp.net.

Es un archivo opcional que maneja eventos generados por ASP.NET o por HttpModules. Se utiliza principalmente para eventos de inicio / fin de sesiones y aplicaciones y para el manejo de errores globales.

Cuando se usa, debe estar en la raíz del sitio web.


3

El directorio raíz de una aplicación web tiene un significado especial y cierto contenido puede estar presente en esa carpeta. Puede tener un archivo especial llamado "Global.asax". El marco ASP.Net usa el contenido en global.asax y crea una clase en tiempo de ejecución que se hereda de HttpApplication. Durante la vida útil de una aplicación, ASP.NET mantiene un grupo de instancias de HttpApplication derivadas de Global.asax. Cuando una aplicación recibe una solicitud http, el marco de la página ASP.Net asigna una de estas instancias para procesar esa solicitud. Esa instancia es responsable de administrar toda la vida útil de la solicitud a la que está asignada y la instancia solo se puede reutilizar después de que la solicitud se haya completado cuando se devuelva al grupo. Los miembros de la instancia en Global.asax no se pueden usar para compartir datos entre solicitudes, pero el miembro estático sí. Global.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.