El archivo Global.asa es procesado por cada sesión de navegador que inicia la aplicación. En este taller conocerá su funcionamiento, qué contiene y dónde debe almacenarse
¿Dónde grabar el archivo Global.asa?
Uno de los errores más frecuentes en la utilización del archivo Global.asa es su ubicación física en el servidor web ya que debe estar en la raiz del Directorio Virtual IIS creado para la aplicación.
Dado un directorio del sistema de archivos del servidor en el que tiene almacenados los archivos, asp, html, imágenes y otros recursos que componen su aplicación, puede crear, mediante Internet Information Server un Directorio Virtual que le permitirá acceder a la su aplicación asp desde el navegador.
De este modo el directorio virtual actua de directorio inicial a partir del cual cuelgan los recursos de su aplicación en forma de archivos y directorios. Por ejemplo:
Dado el directorio físico del servidor"c:inetpubwwwrootstopper" y el Directorio Virtual de IIS "AppStopper"
Cuando en el navegador se escriba la dirección: "http://nombreservidor/AppStopper" accederá a los archivos, directorios que cuelgan de "c:inetpubwwwrootstopper"
Según esto el archivo global.asa deberá almacenarse en el directorio físico de servidor al que hace referencia el directorio virtual. En el ejemplo anterior:
c:inetpubwwwrootstopperglobal.asa
Contenido del archivo Global.asa
El código asp que puede escribirse en el archivo global.asa debe enmarcarse en los eventos de Inicio o Fin de la Aplicación o de la Sessión.
Evento: Inicio de Aplicación
Este evento ocurre antes del inicio de una nueva sesión de un usuario
Evento: Fin de Aplicación
Este evento sucede cuando la aplicación finaliza lo que sucede cuando es servidor web es detenido.
Evento: Inicio de Sesión
Este evento ocurre antes de que el servidor Web cree el objeto Session para indicar que un nuevo usuario realiza una petición. Típicamente se especifica en esta subrutina el tiempo de inactividad antes de finalizar la sesión mediante la sentencia Session.Timeout
Evento: Fin de Sesión
Este evento sucede cuando la sesión finaliza o sea cuando se excede el tiempo de inactividad o cuando el usuario cierra el navegador. Tambien puede provocarse este evento con la instrucción Session.Abandon
Ejemplo del archivo Global.asa
Los siguientes fragmentos de código corresponden a un archivo Global.asa ficticio y una página asp que imprime en pantalla el valor de las variables declaradas en el propio archivo Global.asa.
<script Language="VBScript" RUNAT=Server> Sub Application_OnEnd() End Sub Sub Application_OnStart() Application("NumSesion") = 0 Application("NumVisitas") = 0 End Sub Sub Session_OnEnd() Application("NumSesion") = Application("NumSesion") - 1 End Sub Sub Session_OnStart() Application("NumSesion") = Application("NumSesion") + 1 Application("NumVisitas") = Application("NumVisitas") + 1 End Sub </script>
<html> <head> <title>Página de Inicio</title> </head> <body> <h1>Bienvenido a la Aplicación Stopper</h1> <h2> <% Response.write "Eres el visitante número: & Application("NumSesion") & " de " & Application("NumVisitas") %> </h2> </body> </html>
Consideraciones
Suponga que en el directorio raiz de la aplicación tiene un archivo Global.asa. Como vio anteriormente cuando un usuario acceda a un archivo asp de cualquiera de los directorios virtuales (*) o físicos, el servidor, ejecutará los eventos OnStart correspondientes haciendo que las variables inicializadas en ellos sean accesibles por todos los archivos asp jerarquicamente pertenecientes a la raiz.
(*)Debe tener en cuenta que la posibilidad de tener directorios virtuales con sus respectivos archivos Global.asa anula la inicialización realizada en primer lugar perdiendo el valor de esas variables.
Es recomendable controlar el número de archivos Global.asa que utiliza una determinada Web y no olvidar las condiciones de validez de las variables creadas en él.