Heim >Backend-Entwicklung >C#.Net-Tutorial >Detaillierte Einführung in die Datei Global.asa in ASP
Die Datei Global.asa ist eine optionale Datei, die Deklarationen von Objekten, Variablen und Methoden enthält, auf die jede Seite in einer ASP-Anwendung zugreifen kann.
Global.asa-Datei
Die Global.asa-Datei ist eine optionale Datei, die die Deklaration von Objekten, Variablen und Methoden enthält. Alle legalen Browser-Skripte können in Global.asa verwendet werden.
Global.asa-Datei kann Folgendes enthalten:
Anwendungsereignis
Sitzungsereignis
72e31c0c8eaa8580d528fec50944a1a0-Deklaration
TypeLibrary-Deklaration
#include-Direktive
Hinweis: Die Global.asa-Datei muss im Stammverzeichnis der ASP-Anwendung gespeichert werden und jede Anwendung kann nur eine Global.asa haben dokumentieren.
Ereignisse in Global.asa
In Global.asa können wir den Anwendungs- und Sitzungsobjekten mitteilen, was sie beim Starten und Beenden tun sollen. Der Code zum Ausführen dieser Aufgabe wird im Ereignisoperator platziert. Die Datei Global.asa kann vier Arten von Ereignissen enthalten:
Application_OnStart – Dieses Ereignis tritt auf, wenn der erste Benutzer die erste Seite aus einer ASP-Anwendung aufruft. Dieses Ereignis tritt auf, nachdem der Webserver neu gestartet oder die Datei Global.asa bearbeitet wurde. Das Ereignis „Session_OnStart“ tritt unmittelbar nach diesem Ereignis ein.
Session_OnStart – Dieses Ereignis tritt jedes Mal auf, wenn ein neuer Benutzer seine erste Seite in einer ASP-Anwendung anfordert.
Session_OnEnd – Dieses Ereignis tritt immer dann ein, wenn der Benutzer die Sitzung beendet. Wenn innerhalb der angegebenen Zeit (das Standardereignis ist 20 Minuten) keine Seite angefordert wird, wird die Sitzung beendet.
Application_OnEnd – Dieses Ereignis tritt auf, nachdem der letzte Benutzer seine Sitzung beendet hat. Normalerweise tritt dieses Ereignis auf, wenn der Webserver gestoppt wird. Mit dieser Unterroutine werden Einstellungen gelöscht, nachdem die Anwendung gestoppt wurde, beispielsweise das Löschen von Datensätzen oder das Schreiben von Informationen in eine Textdatei.
Global.asa-Datei könnte so aussehen:
<script language="vbscript" runat="server"> sub Application_OnStart 'some code end sub sub Application_OnEnd 'some code end sub sub Session_OnStart 'some code end sub sub Session_OnEnd 'some code end sub </script>
Hinweis: Da ASP-Skripttrennzeichen (3cd8a319deec813d0b1652c1ab3c7255) in Global nicht verwendet werden können Um ein Skript in eine .asa-Datei einzufügen, müssen wir das HTML-Element 3f1c4e4b6b16bbbd69b2ee476dc4f83a verwenden.
273238ce9338fbb04bee6997e5552b95 Die Deklaration
kann mithilfe des 273238ce9338fbb04bee6997e5552b95-Tags ein Objekt mit Sitzungs- oder Anwendungsbereich erstellen.
Hinweis: Das 273238ce9338fbb04bee6997e5552b95-Tag sollte außerhalb des 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Tags stehen.
Syntax:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Parameter Beschreibung
scope Legt den Umfang (Scope) des Objekts (Sitzung oder Anwendung) fest.
id Geben Sie eine eindeutige ID für das Objekt an.
ProgID Die mit ClassID verknüpfte ID. Das Format der ProgID ist: [Vendor.]Component[.Version]. Es muss ProgID oder ClassID angegeben werden.
ClassID Gibt eine eindeutige ID für ein COM-Klassenobjekt an. Es muss ProgID oder ClassID angegeben werden.
Instanzen
Die erste Instanz erstellt ein Sitzungsbereichsobjekt mit dem Namen „MyAd“ unter Verwendung des ProgID-Parameters:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
Die zweite Instanz erstellt ein
<object runat="server" scope="application" id="MyConnection"classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
mit dem Namen „MyConnection“ unter Verwendung des ClassID-Parameters. Diese in dieser Global.asa-Datei deklarierten Objekte können von jedem Skript in der Anwendung verwendet werden.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
Sie können von jeder Seite Ihrer ASP-Anwendung aus auf dieses „MyAd“-Objekt verweisen:
Eine .ASP-Datei:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
TypeLibrary-Deklaration
TypeLibrary (Typbibliothek) ist ein Container, der DLL-Dateien enthält, die COM-Objekten entsprechen. Durch das Einfügen eines Aufrufs von TypeLibrary in Global.asa können Sie auf die Konstanten des COM-Objekts zugreifen und Ihr ASP-Code kann Fehler besser melden. Wenn die Anwendungen Ihrer Site auf COM-Objekten basieren, deren Datentypen in einer Typbibliothek deklariert wurden, können Sie die Typbibliothek in Global.asa deklarieren.
Syntax:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Parameter Beschreibung
file Gibt den absoluten Pfad zur Typbibliothek an. Parameterdatei oder UUID, beide sind unverzichtbar.
uuid gibt den eindeutigen Bezeichner für die Typbibliothek an. Parameterdatei oder UUID, beide sind unverzichtbar.
Version Optional. Wird zur Auswahl der Version verwendet. Wenn die angegebene Version nicht gefunden wird, wird die nächstgelegene Version verwendet.
lcid Optional. Der für die Typbibliothek verwendete Gebietsschemabezeichner.
Fehlerwert
Der Server gibt eine der folgenden Fehlermeldungen zurück:
错误 代码 描述
ASP 0222 Invalid type library specification
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped
注释:METADATA 标签可位于 Global.asa 文件中的任何位置(在 3f1c4e4b6b16bbbd69b2ee476dc4f83a 标签的内外均可)。不过,我们还是推荐将 METADATA 标签放置于 Global.asa 文件的顶部。
限定
关于可以在 Global.asa 文件中引用的内容的限定:
你无法显示 Global.asa 文件中的文本。此文件无法显示信息。
你只能在 Application_OnStart 和 Application_OnEnd 子例程中使用 Server 和 Application 对象。在 Session_OnEnd 子例程中,你可以使用 Server、Application 和 Session 对象。在 Session_OnStart 子例程中,你可使用任何内建的对象。
如何使用子例程
Global.asa 常用于对变量进行初始化。
下面的例子展示如何检测访问者首次到达站点的确切时间。时间存储在名为 "started" 的 Session 对象中,并且 "started" 变量的值可被应用程序中的任何 ASP 页面访问:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa 也可用于控制页面访问。
下面的例子展示如何把每位新的访问者重定向到另一个页面,在这个例子中会定向到 "newpage.asp" 这个页面:
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
我们还可以在 Global.asa 中包含函数。
在下面的例子中,当 Web 服务器启动时,Application_OnStart 子例程也会启动。随后,Application_OnStart 子例程会调用另一个名为 "getcustomers" 的子例程。"getcustomers" 子例程会打开一个数据库,然后从 "customers" 表中取回一个记录集。此记录集会赋值给一个数组,在不查询数据库的情况下,任何 ASP 页面都能够访问这个数组:
<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>
Global.asa 实例
在这个例子中,我们要创建一个可计算当前访客的 Global.asa 文件。
Application_OnStart 设置当服务器启动时,Application 变量 "visitors" 的值为 0。
每当有新用户访问时,Session_OnStart 子例程就会给变量 "visitors" 加 1。
每当 Session_OnEnd 子例程被触发时,此子例程就会从变量 "visitors" 减 1。
Global.asa 文件:
<script language="vbscript" runat="server"> Sub Application_OnStart Application("visitors")=0 End Sub Sub Session_OnStartApplication.LockApplication("visitors")=Application("visitors")+1Application.UnLockEnd SubSub Session_OnEndApplication.LockApplication("visitors")=Application("visitors")-1Application.UnLockEnd Sub</script> 此 ASP 文件会显示当
前用户的数目:
<html> <head> </head> <body> <p>There are <%response.write(Application("visitors"))%> online now!</p> </body> </html>
【相关推荐】
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Datei Global.asa in ASP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!