martes, 7 de enero de 2014

Archivos Web.Config y Global.asax

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:
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
<%@ 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.
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
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ónASP.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:
?
1
2
<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>
?
1
<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.
?
1
ConfigurationManager.AppSettings.Get("HabilitarContadorVisitas");
Código del evento Session_Start
?
1
2
3
4
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.

No hay comentarios:

Publicar un comentario