El archivo Global.asa

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.

Ejemplo del contenido del 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> 

Página Inicio.asp

<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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO