Introduction
Global.asax file is also known as ASP.NET application file. It provides a way to
respond to application or module level events in one central location. We can
use this file to implement application security, total hits counting, number of
users online as well as other tasks. The Global.asax file exists in the root of
the application directory. Global.assx file is an optional file so if we don't
need then simply delete it from application and no any other change required.
The Global.asax file is configured so that any direct HTTP request (via URL) is
rejected automatically, so users cannot download or view its contents. The
ASP.NET page framework recognizes automatically any changes that are made to the
Global.asax file. The framework reboots the application, which includes closing
all browser sessions, flushes all state information, and restarts the
application domain.
About Global.asax page
Adding a Global.asax to your web project is quiet simple. Open Visual Studio
2005 or 2008 > Create a new website > Go to the Solution Explorer > Add New Item
> Global Application Class > Add.
Now we will have three Application Event Handlers and two Session Event
Handlers.
Here is the list of Application Event Handlers:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs on application startup
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs on application shutdown
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when an unhandled error occurs
End Sub
Here is the list of Session Event Handlers:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when a new session is started
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs when a session ends.
' Note: The Session_End event is raised only when the sessionstate mode
' is set to InProc in the Web.config file. If session mode is set to StateServer
' or SQLServer, the event is not raised.
End Sub
Event Handlers will be used
Application_Start():
It gets fired when the first resource is requested from the web server and the
web application starts.
Application_BeginRequest():
It gets fired when an application request is received. It's the first event
fired for a request, which is often a page request (URL) that a user enters.
Working with Global.asax file
<%@ Application Language="VB" %>
<script runat="server">
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
'
Code that runs on application startup
Application("TitleOfPage")
= "USER
DETAILS STATEMENT"
Application("NumberOfOnlineUsers")
= 0
Application("NumberOfUsers")
= 0
End Sub
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Application.Lock()
Application("NumberOfUsers")
= CType(Application("NumberOfUsers"), Integer)
+ 1
Application.UnLock()
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
'
Code that runs on application shutdown
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
'
Code that runs when an unhandled error occurs
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
'
Code that runs when a new session is started
Application.Lock()
Application("NumberOfOnlineUsers")
= CType(Application("NumberOfOnlineUsers"), Integer)
+ 1
Application.UnLock()
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
'
Code that runs when a session ends.
'
Note: The Session_End event is raised only when the sessionstate mode
'
is set to InProc in the Web.config file. If session mode is set to StateServer
'
or SQLServer, the event is not raised.
End Sub
</script>
Working with Default.aspx file
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Create
and Use Session and Application Level Events in ASP.NET</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="100%">
<tr>
<td colspan="3">
<asp:Label ID="Label1" runat="server" Text="Label" Width="561px" Font-Bold="True"Font-Size="Large" ForeColor="Red"></asp:Label><br />
<br />
</td>
</tr>
<tr>
<td style="width:
68px">
<asp:Label ID="Label4" runat="server" Font-Bold="True" ForeColor="Blue"Text="Number
of Online Users"
Width="252px"></asp:Label></td>
<td colspan="2">
<asp:Label ID="Label2" runat="server" Text="Label" Width="410px"></asp:Label></td>
</tr>
<tr>
<td style="width:
68px">
<asp:Label ID="Label5" runat="server" Font-Bold="True" ForeColor="Blue"Text="Number
of Users Served (Hits)"
Width="395px"></asp:Label></td>
<td colspan="2">
<asp:Label ID="Label3" runat="server" Text="Label" Width="411px"></asp:Label></td>
</tr>
</table>
</div>
</form>
</body>
</html>
Working with Default.aspx.vb file
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Label1.Text = Application("TitleOfPage")
Label2.Text = Application("NumberOfOnlineUsers")
Label3.Text = Application("NumberOfUsers")
End Sub
End Class
HAVE A HAPPY CODING!