ASP.NET QuickStart Príručka
Používanie súboru Global.asax
Okrem písania kódu užívateľského rozhrania môžu vývojári do svojich webových aplikácii pridať taktiež úroveň aplikačnej logiky na úrovni aplikácie a kód spracovávajúci udalosti. Tento kód nespracováva generovanie užívateľského rozhrania a zvyčajne nie je vyvolaný ako odozva k jednotlivým požiadavkám stránky. Namiesto toho je zodpovedný za spracovanie aplikačných udalosti vyššieho stupňa ako Application_Start, Application_End, Session_Start, Session_End, atď. Vývojári autorizujú túto logiku použitím súboru Global.asax umiestneného kmeňovom adresári patričného virtuálneho adresárového stromu webovej aplikácie.
ASP.NET automaticky rozoberie a skompiluje tento súbor do dynamickej triedy .NET Frameworku -- ktorá rozširuje základnú triedu HttpApplication -- pri prvom aktivovaní alebo požiadaní o nejaký zdroj alebo URL v rámci aplikácie.
Súbor Global.asax je rozobraný a dynamicky skompilovaný pomocou ASP.NET do triedy .NET Frameworku pri prvom aktivovaní alebo požiadaní o nejaký zdroj alebo URL v rámci aplikácie. Súbor Global.asax je nakonfigurovaný, aby automaticky odmietol každú požiadavku s priamou URL požiadavkou, aby si nemohli používatelia stiahnuť alebo pozrieť kód vo vnútri súboru.
Udalosti na úrovni Aplikácie alebo Session
Vývojári môžu definovať handlery pre události základnej triedy HttpApplication vytvorením metód v súbore Global.asax, ktoré musia mať pomenovanie "Application_EventName(AppropriateEventArgumentSignature)". Napríklad:
<script language="VB" runat="server">
Sub Application_Start(Sender As Object, E As EventArgs)
' Application startup code goes here
End Sub
</script>
VB
Ak kód spracovávajúci udalosti potrebuje importovať ďalšie namespace-y, môže byť na stránke aspx následovne použitá direktíva @ import:
<%@ Import Namespace="System.Text" %>
Nasledujúca ukážka načrtáva životný cyklus aplikácie,
session a požiadavky.
VB Global.asax
Pri prvom otvorení stránky je pre aplikáciu a session vyvolaná udalosť Start:
Sub Application_Start(Sender As Object, E As EventArgs)
' Application startup code goes here
End Sub
Sub Session_Start(Sender As Object, E As EventArgs)
Response.Write("Session is Starting...<br>")
Session.Timeout = 1
End Sub
VB
Udalosti BeginRequest a EndRequest sú vyvolané pri každej požiadavke.
Keď je stránka obnovená, zobrazia sa iba správy z metód BeginRequest, EndRequest a
Page_Load. Všimnite si, že po prerušení aktuálnej
session (stlačte tlačidlo "End this session") je vytvorená nová session
a opäť je vyvolaná udalosť Session_Start.
Objekty na úrovni Aplikácie a Session
Statické objekty, .NET Framework triedy a COM komponenty, všetky môžu byť definované
v súbore Global.asax použitím tagu object. Scope môže byť appinstance, session, alebo
application. appinstance scope znamená, že objekt je špecifický pre jednu
inštanciu HttpApplication a nie je zdieľaný.
<object id="id" runat="server" class=".NET Framework class Name" scope="appinstance"/>
<object id="id" runat="server" progid="COM ProgID" scope="session"/>
<object id="id" runat="server" classid="COM ClassID" scope="application"/>
|