Home   Cover Cover Cover Cover
 

Zustandsverwaltung


Zu Abschnitt 7.4.4 des Buchs

Wird ein Web-Service aufgerufen, erzeugt der IIS ein Objekt, welches diesen Aufruf abarbeitet. Über die Zustände "Application" und "Session" können Daten ausgetauscht werden. Hier werden einfach zwei Zähler erhöt: einen globalen, für die ganze Anwendung (Application) und einen für jede Sitzung (Session - siehe auch Methode IncSession). Der Application-Zustand ist für alle Sitzungen gleich und wird erst bei einem Neustart der ganzen Anwendung wieder zurückgesetzt (z.B. beim Neustart der ASP.NET Laufzeitumgebung).

StateDemo.asmx
<%@ WebService Language="C#" Class="Kapitel7.StateDemo" %>
using System.Web.Services;

namespace Kapitel7 {
  [WebService(Namespace="http://dotnet.jku.at/StateDemo/")]
  public class StateDemo : WebService {
    [WebMethod()]
    public int IncApplication() {
      int hit = (Application["Hit"] == null) ? 0 : (int) Application["Hit"];
      hit++;
      Application["Hit"] = hit;
      return hit;
    }

    [WebMethod(EnableSession=true)]
    public int IncSession() {
      int hit = (Session["Hit"] == null) ? 0 : (int) Session["Hit"];
      hit++;
      Session["Hit"] = hit;
      return hit;
    }
  }
}

Ausführung

Der nächste Link führt Sie zu einer automatisch erzeugten Seite. D.h. für den oben dargestellten Code wird eine HTML-Seite erzeugt, welche das Web-Service beschreibt.

Damit der Session Zähler unterschiedlich erhöht wird, verwenden Sie bitte zwei Browser (z.B. zweimal IE starten) und damit zwei Prozesse.

http://dotnet.jku.at/book/samples/7/lifecycle/StateDemo.asmx

Eine weitere Möglichkeit, wie Sie dieses Web-Service testen können, ist das Webservice Studio zu verwenden, welches auf der Begleit-CD zum Buch "Die .NET-Technologie" enthalten ist.