Home   Cover Cover Cover Cover
 

Applikations-Ereignisse (Global.asax)


Zu Abschnitt 6.8 des Buchs

Dieses Beispiel zeigt die Behandlung von Applikations-Ereignissen an Hand eines Beispiels, das bei jedem Seitenzugriff und bei jedem Sitzungsbeginn einen Zähler erhöht und die aktuellen Zahlen ausgibt.

Applikations-Ereignisse werden in der Datei Global.asax behandelt.

../../samples/Global.asax
<%@ Application Inherits="Global" Src="Global.asax.cs" %>

Der eigentliche Code steht aber in der Hintergrunddatei Global.asax.cs:

../../samples/Global.asax.cs
using System;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;

public class Global : HttpApplication {

  protected void Application_Start(Object sender, EventArgs e) {
    Application["accesses"] = 0;
    Application["users"] = 0;
  }
  protected void Application_BeginRequest(Object sender, EventArgs e) {
    Application.Lock();
    Application["accesses"] = (int) Application["accesses"] + 1;
    Application.UnLock(); 
  }
  protected void Session_Start(Object sender, EventArgs e) {
    Application.Lock();
    Application["users"] = (int) Application["users"] + 1;
    Application.UnLock(); 
  }
  protected void Session_End(Object sender, EventArgs e) {}
  protected void Application_EndRequest(Object sender, EventArgs e) {}
  protected void Application_End(Object sender, EventArgs e) {}  
}

Schließlich brauchen wir noch eine Seite, auf der die Zählerstände angezeigt werden:

../../samples/6/Statistics.aspx
<%@ Page Language="C#"%>
<html>
    <head> <title>ASPX-Seitenstatistik</title> </head>
  <body>
    <h1>Statistik:</h1>
    Seitenzugriffe:<% Response.Write(Application["accesses"]); %><br>
    BenutzerSessions:<% Response.Write(Application["users"]); %>
  </body>
</html>

Ausführung

   http://dotnet.jku.at/book/samples/6/Statistics.aspx

Ergebnis