¿Que es el archivo Global.asax?

El archivo Global.asax, también conocido como el archivo de aplicación de ASP.NET, es un archivo opcional que contiene código para responder a eventos del nivel de la aplicación y de la sesión provocados por ASP.NET o por módulos HTTP. El archivo Global.asax reside en el directorio raíz de una aplicación de ASP.NET. En tiempo de ejecución, Global.asax se analiza y se compila en una clase de .NET Framework generada dinámicamente que se deriva de la clase base HttpApplication. ASP.NET está configurado para que se rechace automáticamente cualquier solicitud directa de dirección URL del archivo Global.asax; los usuarios externos no pueden descargar ni ver el código que contiene.

El archivo Global.asax es opcional. Se crea únicamente si se desea controlar los eventos de aplicación o de sesión. (msdn.microsoft.com).


 

Los sitios web para ASP.NET, desde su versión 2.0 se pueden desarrollar de 2 formas:

1. Aplicación Web: Lo más parecido a una aplicación convencional donde usted debe primero de compilar el codigo para poderlo ejectuar.

2. Sitio Web: Los archivos no necesitan ser compilados, solo los hace y los pone en el servidor web, el cual internamente va creando una versión compilada conforme se va necesitando.

Se sale del tema de este artículo dar mas detalles, diferencias, pros y contras de cada forma de realizar los sitios web, podrá encontrar más información buscando por internet al respecto (Google).

Sin embargo mi apreciación y sugerencia es utilizar un intermedio, es decir desarrollar el proyecto del tipo "Sitio Web" y el codigo fuente que desee proteger o optimizar compilandolo, lo genere como una librería aparte (.dll), la cual incorpora luego al sitio web.  Esto con el fin de tener el beneficio principal de este tipo de proyecto, el cual consiste en que usted como programador o diseñador gráfico, puede actualizar una página del sitio web, mientras el sitio es visitado por cientos de personas, es decir en producción.

Para este tipo de proyecto (sitio web), el archivo de configuración glogal.asax, no tiene aparte el archivo de codigo fuente convencional (.cs o .vb), si no que al agregarlo lo genera como un archivo script.

Con el siguiente metodo podra tener nuevamente el codigo fuente aparte para el archivo global.asax:

1. Reemplaze todo el codigo del archivo global.asax con esta línea:

<%@ Application Inherits="Global" Language="C#" %>

2. Ahora cree un archivo de codigo fuente que se llame global.cs y guardelo en la carpeta App_Code, en este archivo puede colocar el codigo convencional, como ejemplo:

using System;

using System.Globalization;

using System.Web;

public class Global : System.Web.HttpApplication {

void Application_Start(object sender, EventArgs e) { // Código que se ejecuta al iniciarse la aplicación }

void Application_End(object sender, EventArgs e) { // Código que se ejecuta cuando se cierra la aplicación }

void Application_Error(object sender, EventArgs e) { // Código que se ejecuta al producirse un error no controlado }

void Session_Start(object sender, EventArgs e) { // Código que se ejecuta cuando se inicia una nueva sesión }

void Session_End(object sender, EventArgs e) { // Código que se ejecuta cuando finaliza una sesión.}

protected void Application_BeginRequest(Object sender, EventArgs e) { }

}

Si desea una lista completa de todos los métodos, visite este excelente artículo: Trabajando con el Global.asax