Archivo Global.asa ASP
- Página anterior #include ASP
- Página siguiente Correo ASP
El archivo Global.asa es un archivo opcional que puede contener declaraciones de objetos, variables y métodos que pueden ser accedidos por cada página de la aplicación ASP. Todos los scripts de navegador legales pueden ser utilizados en el archivo Global.asa.
Archivo Global.asa
El archivo Global.asa es un archivo opcional que puede contener declaraciones de objetos, variables y métodos que pueden ser accedidos por cada página de la aplicación ASP. Todos los scripts de navegador legales pueden ser utilizados en el archivo Global.asa.
El archivo Global.asa puede contener lo siguiente:
- Evento de aplicación
- Evento de sesión
- Declaración <object>
- Declaración de TypeLibrary
- Instrucción #include
Comentarios:El archivo Global.asa debe estar almacenado en el directorio raíz de la aplicación ASP y cada aplicación solo puede tener un archivo Global.asa.
Evento en Global.asa
En Global.asa, podemos informar a los objetos aplicación y sesión sobre qué hacer en el inicio y finalización. El código que realiza esta tarea se coloca en el gestor de eventos. El archivo Global.asa puede contener cuatro tipos de eventos:
Application_OnStart - Este evento ocurre cuando el primer usuario llama a la primera página de la aplicación ASP. Este evento ocurre cuando el servidor web se reinicia o se edita el archivo Global.asa. El evento "Session_OnStart" ocurre inmediatamente después de este evento.
Session_OnStart - Este evento ocurre cada vez que un nuevo usuario solicita su primera página en la aplicación ASP.
Session_OnEnd - Este evento ocurre cada vez que un usuario finaliza su sesión. Dentro del tiempo especificado (el evento predeterminado es de 20 minutos) si no se solicita ninguna página, la sesión finalizará.
Application_OnEnd - Este evento ocurre después de que el último usuario finalice su sesión. En casos típicos, este evento ocurre cuando el servidor web se detiene. Este subproceso se utiliza para limpiar la configuración después de que se detiene la aplicación, por ejemplo, eliminar registros o escribir información en un archivo de texto.
El archivo Global.asa puede parecer así:
<script language="vbscript" runat="server"> sub Application_OnStart 'algún código end sub sub Application_OnEnd 'algún código end sub sub Session_OnStart 'algún código end sub sub Session_OnEnd 'algún código end sub </script>
Comentarios:Dado que no se puede insertar un script en el archivo Global.asa utilizando el separador de scripts de ASP (<% y %>), debemos usar el elemento <script> de HTML.
Declaración <object>
Se pueden crear objetos con ámbito de sesión o aplicación en el archivo Global.asa utilizando la etiqueta <object>.
Comentarios:La etiqueta <object> debe estar ubicada fuera de la etiqueta <script>.
Sintaxis:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Parámetro | Descripción |
---|---|
scope | Se establece el ámbito del objeto (alcance) (sesión o aplicación). |
id | Se asigna un id único al objeto. |
ProgID |
Id asociado con ClassID. El formato de ProgID es: [Proveedor.]Componente[.Versión]. El ProgID o ClassID deben especificarse. |
ClassID |
Se especifica un id único para el objeto de clase COM. El ProgID o ClassID deben especificarse. |
instancia
La primera instancia crea un objeto con el nombre "MyAd" utilizando el parámetro ProgID y define un objeto de ámbito de sesión:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
La segunda instancia crea un objeto con el nombre "MyConnection" utilizando el parámetro ClassID:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21" </object>
Estos objetos declarados en este archivo Global.asa pueden ser utilizados por cualquier script en la aplicación.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator" </object>
Puede referenciar este objeto "MyAd" desde cualquier página de la aplicación ASP:
Un archivo .ASP:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Declaración de TypeLibrary
TypeLibrary (Biblioteca de Tipos) es un contenedor que contiene archivos DLL correspondientes a objetos COM. Al incluir llamadas a TypeLibrary en Global.asa, se puede acceder a las constantes de los objetos COM y el código ASP puede informar mejor de los errores. Si el aplicación de su sitio web depende de objetos COM que han sido declarados en la biblioteca de tipos, puede declarar la biblioteca de tipos en Global.asa.
Sintaxis:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Parámetro | Descripción |
---|---|
file | Define la ruta absoluta hacia la biblioteca de tipos. Los parámetros file o uuid, uno de los dos es obligatorio. |
uuid | Define un identificador único para la biblioteca de tipos. Los parámetros file o uuid, uno de los dos es obligatorio. |
version | Opcional. Usado para seleccionar una versión. Si no se encuentra la versión especificada, se usará la versión más cercana. |
lcid | Opcional. Identificador regional de la biblioteca de tipos. |
Valor de error
El servidor devolverá uno de los siguientes mensajes de error:
Error | Código | Descripción |
---|---|---|
ASP | 0222 | Especificación inválida de biblioteca de tipos |
ASP | 0223 | La biblioteca de tipos no se encontró |
ASP | 0224 | La biblioteca de tipos no se puede cargar |
ASP | 0225 | La biblioteca de tipos no se puede envolver |
Comentarios:La etiqueta METADATA puede estar en cualquier posición del archivo Global.asa (tanto dentro como fuera de la etiqueta <script>). Sin embargo, recomendamos colocarla en la parte superior del archivo Global.asa.
Limitaciones
Limitaciones sobre lo que se puede referenciar en el archivo Global.asa:
No se puede mostrar el texto del archivo Global.asa. Este archivo no puede mostrar información.
Sólo se pueden usar los objetos Server y Application en los subprocesos Application_OnStart y Application_OnEnd. En el subproceso Session_OnEnd, se pueden usar los objetos Server, Application y Session. En el subproceso Session_OnStart, se pueden usar cualquier objeto integrado.
Cómo usar subprocesos
Global.asa se utiliza a menudo para inicializar variables.
El siguiente ejemplo muestra cómo detectar el momento exacto en que el visitante llega por primera vez al sitio. La hora se almacena en el objeto Session llamado "started", y el valor de la variable "started" puede ser accedido por cualquier página ASP en la aplicación:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa también se puede usar para controlar el acceso a las páginas.
El siguiente ejemplo muestra cómo redirigir a cada visitante nuevo a otra página, en este caso se redirigirá a la página "newpage.asp":
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
También podemos incluir funciones en Global.asa.
En el siguiente ejemplo, cuando se inicia el servidor web, también se inicia el subproceso Application_OnStart. Después de eso, el subproceso Application_OnStart llama a otro subproceso llamado "getcustomers". El subproceso "getcustomers" abre una base de datos y luego recupera un conjunto de registros de la tabla "customers". Este conjunto de registros se asigna a un array, de modo que cualquier página ASP pueda acceder a este array sin consultar la base de datos:
<script language="vbscript" runat="server"> sub Application_OnStart getcustomers end sub sub getcustomers set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" set rs=conn.execute("select name from customers") Application("customers")=rs.GetRows rs.Close conn.Close end sub </script>
Instancia Global.asa
En este ejemplo, crearemos un archivo Global.asa que pueda calcular el número actual de visitantes.
Application_OnStart establece el valor de la variable Application "visitors" a 0 cuando se inicia el servidor.
Cada vez que un nuevo usuario visite, el subproceso Session_OnStart agregará 1 al valor de la variable "visitors".
Cada vez que se dispara el subproceso Session_OnEnd, este subproceso restará 1 al valor de la variable "visitors".
Archivo Global.asa:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStart Application.Lock Application("visitors")=Application("visitors")+1 Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("visitors")=Application("visitors")-1 Application.UnLock End Sub </script>
Este archivo ASP mostrará el número actual de usuarios:
<html> <head> </head> <body> <p>¡Hay <%response.write(Application("visitors"))%> en línea ahora!</p> </body> </html>
- Página anterior #include ASP
- Página siguiente Correo ASP