Un espacio para los entusiastas del web

23 dic 2010
46.813 Lecturas

Tutorial ASP.NET: Archivos Web.Config y Global.asax

Tags: ASP.NET,

Global.asax

El archivo Global.asax es opcional y nos permite manejar eventos de Aplicación y de Session en nuestra aplicación ASP.NET. El archivo Global.asax reside en el directorio raíz de una aplicación de ASP.NET. Este archivo se compila en tiempo de ejecución, no es accesible por URL y debe ubicarse en el directorio raíz de la solución.

Template Global.asax:

<%@ Application Language="C#" %> <script runat="server">
void Application_Start(object sender, EventArgs e) {
// Codigo que se ejectura cuando inicia la aplicacion
}
void Application_End(object sender, EventArgs e) {
// Codigo que se ejectura cuando finaliza la aplicacion
}
void Application_Error(object sender, EventArgs e) {
// Codigo que se ejectura cuando ocurre algun error en la aplicacion
}
void Session_Start(object sender, EventArgs e) {
// Codigo que se ejectura cuando se inicia la sesion.
}
void Session_End(object sender, EventArgs e) {
// Codigo que se ejectura cuando finaliza la sesion.
}
</script>

El uso clásico es el contador de visitas que debe sumar por cada usuario que ingrese al sitio web. El evento que se ejecuta por cada ingreso esSession_Start.

Ejemplo:

Código en Gobal.asax: Inicializamos una variable en 0 al iniciar la aplicación y luego por cada inicio de sesión la incrementamos y la cargamos a una variable de sesión para poder acceder a ella desde el resto de la aplicación.

private int cnt; void Application_Start(object sender, EventArgs e) { // Codigo que se ejectura cuando inicia la aplicacion
cnt = 0;
} void Session_Start(object sender, EventArgs e) { // Codigo que se ejectura cuando se inicia la sesion.
Session["cv"] = cnt++;
} Código de la pagina aspx a la que llamaremos ContadorVisitas.aspx <%@ Page Language="C#" %> <script runat="server">
protected void Page_Load(object sender, EventArgs e) {
Response.Write(Session["cv"]); </script>
}
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<title></title> </head>
<body> <form id="form1" runat="server"> <div>
</div>
</form> </body>
</html>

La ventaja de manejarlo de esta forma es que vamos a lograr un contador de visitas reales, es decir, sólo sumará cada inicio de sesión en lugar de sumar cada solicitud a la página.

Para probarlo copiamos el archivo ContadorVisitas.aspx y Global.asax al directorio virtual creado anteriormente en el IIS y lo ejecutamos: http://localhost/MiPrimeraAplicacionWeb/ContadorVisitas.aspx.

Web.config

El archivo Web.config es el archivo principal de configuraciones de toda aplicación ASP.NET. Es un archivo XML que controla el funcionamiento del sitio web.

  • Control de seguridad.
  • Conexiones a bases de datos.
  • Estado de las sesiones.
  • Control de errores.
  • Configuraciones personalizadas.
  • Al igual que el global.asax debe ser colocado en la raíz de la aplicación.

Estructura básica de un archivo web.config:

<configuration> <system.web/>
<appSettings/> </configuration>

Agregamos Keys a nuestro web.config para ver cómo usarlos en nuestro sitio.

Por ejemplo, si queremos controlar que el contador de visitas vaya a estar activo o no agregamos una key llamada HabilitarContadorVisitas y lo seteamos como verdadero. Nuestras Keys (Claves) vamos a agregarlos en el tag<appSettings>

<appSettings> <add key="HabilitarContadorVisitas" value="true" /> </appSettings>

Modificamos el evento Session_Start del global.asax para preguntar el estado de la key y controlar el comportamiento del contador de visitas.

ConfigurationManager.AppSettings.Get("HabilitarContadorVisitas");

Código del evento Session_Start

void Session_Start(object sender, EventArgs e) { // Codigo que se ejectura cuando se inicia la sesion.
if (Convert.ToBoolean(ConfigurationManager.AppSettings.Get("HabilitarContadorVisitas"))) {
Session["cv"] = cnt++;
}

Luego copiamos al directorio virtual los archivos modificados y veremos que el contador de visitas siempre nos marcara CERO. Más adelante usaremos el web.config para establecer nuestra conexión con datos.

Capítulos del Tutorial

En el próximo capítulo que se publica el martes veremos: Utilización de Código detrás del modelo o código en línea.

Siguiente capítulo: Utilización de código detrás del modelo o código en línea

Fernando Giardina para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: @maestros | Fan page

Comentarios

  1. omar

    gracias me ayudo mucho a darme una idea clara de como funciona el global.asax

  2. Domingo

    Hola, favor de seguir publicando paso a paso la programación en ASP.NET 2010, la he estado siguiendo y me ha sido de bastante ayuda… he ido practicando cada ejercicio que presentas allí…

    Por favor, si te es posible, presenta las láminas en la fase de diseño y de código para ir viendo la manera cómo se van presentando los códigos que vas señalando… si no es mucho pedir…

    Estoy seguro que la comunidad de este foro está muy agradecida al igual que yo de este grandioso aporte que estás realizando…

    Espero con ansias llegues a la parte en la que conectas las aplicaciones con la base de datos, en la que podamos mostrar en el formulario de ASP.NET las informaciones que tenemos en la base de datos que hemos preparado… yo estoy utilizando la base de datos de windows server 2008 R2 que se acopla bastante bien con ASP.NET…

    Muchas gracias por tus aportes, te prometo que seré un fiel seguidor de este curso hasta el final…

Los comentarios de este post están cerrados. Si quieres seguir la discusión, debatir, criticar, sugerir o expandir el tema te invitamos a hacerlo en tu propio blog, en twitter o donde puedas publicar. No olvides enlazar a este post para que sigamos la conversación y se genere un trackback.



Acerca de
Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web