Gewusst wie: Zustandsverwaltung in Webdiensten, die mit ASP.NET erstellt wurden
Webdienste haben Zugriff auf die gleichen Zustandsverwaltungsoptionen wie andere ASP.NET-Anwendungen, wenn die Klasse, die den Webdienst implementiert, von der WebService-Klasse abgeleitet ist. Die WebService-Klasse enthält viele der allgemeinen ASP.NET-Objekte, einschließlich des Session-Objekts und des Application-Objekts.
So greifen Sie auf einen für eine bestimmte Clientsitzung spezifischen Zustand zu und speichern ihn
Deklarieren Sie einen Webdienst.
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
Fügen Sie einen Verweis auf den System.Web.Services-Namespace hinzu.
using System.Web.Services;
Imports System.Web.Services
Leiten Sie die Klasse, die den Webdienst implementiert, von der WebService-Klasse ab.
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
Deklarieren Sie eine Webdienstmethode, und legen Sie die EnableSession-Eigenschaft des WebMethod -Attributs auf true fest.
[ WebMethod(EnableSession=true) ] public int PerSessionServiceUsage()
< WebMethod(EnableSession:=True) > _ Public Function PerSessionServiceUsage() As Integer
Speichern Sie den Zustand in Session. Damit wird der Name des Zustands für einen späteren Abruf angegeben. Im folgenden Beispiel wird der Wert
1
in einer Zustandsvariablen mit dem NamenMyServiceUsage
gespeichert.Session["MyServiceUsage"] = 1;
Session("MyServiceUsage") = 1
Greifen Sie auf die in Session gespeicherte Zustandsvariable zu.
Im folgenden Beispiel wird auf die
MyServiceUsage
-Zustandsvariable zugegriffen, um ihren Wert zu erhöhen.Session["MyServiceUsage"] = ((int) Session["MyServiceUsage"]) + 1;
Session("MyServiceUsage") = CInt(Session("MyServiceUsage")) + 1
So greifen Sie auf einen Zustand zu und speichern den Zustand, der für die Webanwendung spezifisch ist, die den Webdienst hostet
Deklarieren Sie einen Webdienst.
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
Fügen Sie einen Verweis auf den System.Web.Services-Namespace hinzu.
using System.Web.Services;
Imports System.Web.Services
Leiten Sie die Klasse, die den Webdienst implementiert, von der WebService-Klasse ab.
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
Deklarieren Sie eine Webdienstmethode.
[ WebMethod ] public int PerSessionServiceUsage()
< WebMethod > _ Public Function PerSessionServiceUsage() As Integer
Speichern Sie den Zustand in Application. Damit wird der Name des Zustands für einen späteren Abruf angegeben. Im folgenden Beispiel wird der Wert
1
in einer Zustandsvariablen mit dem NamenappMyServiceUsage
gespeichert.Application["appMyServiceUsage"] = 1;
Application("appMyServiceUsage") = 1
Greifen Sie auf die in Application gespeicherte Zustandsvariable zu.
Im folgenden Beispiel wird auf die
appMyServiceUsage
-Zustandsvariable zugegriffen, um ihren Wert zu erhöhen.Application["appMyServiceUsage"] = ((int) Application["appMyServiceUsage"]) + 1;
Application("appMyServiceUsage") = _ CInt(Application("appMyServiceUsage")) + 1
Beispiel
<%@ WebService Language="C#" Class="ServerUsage" %>
using System.Web.Services;
public class ServerUsage : WebService {
[ WebMethod(Description="Number of times this service has been accessed.") ]
public int ServiceUsage() {
// If the Web service method hasn't been accessed,
// initialize it to 1.
if (Application["appMyServiceUsage"] == null)
{
Application["appMyServiceUsage"] = 1;
}
else
{
// Increment the usage count.
Application["appMyServiceUsage"] = ((int) Application["appMyServiceUsage"]) + 1;
}
return (int) Application["appMyServiceUsage"];
}
[ WebMethod(Description="Number of times a particular client session has accessed this Web service method.",EnableSession=true) ]
public int PerSessionServiceUsage() {
// If the Web service method hasn't been accessed, initialize
// it to 1.
if (Session["MyServiceUsage"] == null)
{
Session["MyServiceUsage"] = 1;
}
else
{
// Increment the usage count.
Session["MyServiceUsage"] = ((int) Session["MyServiceUsage"]) + 1;
}
return (int) Session["MyServiceUsage"];
}
}
<%@ WebService Language="VB" Class="ServerUsage" %>
Imports System.Web.Services
Public Class ServerUsage
Inherits WebService
<WebMethod(Description := "Number of times this service has been accessed.")> _
Public Function ServiceUsage() As Integer
' If the Web service method hasn't been accessed, initialize
' it to 1.
If Application("appMyServiceUsage") Is Nothing Then
Application("appMyServiceUsage") = 1
Else
' Increment the usage count.
Application("appMyServiceUsage") = _
CInt(Application("appMyServiceUsage")) + 1
End If
Return CInt(Application("appMyServiceUsage"))
End Function
<WebMethod(Description := "Number of times a particular client session has accessed this Web service method.", EnableSession := True)> _
Public Function PerSessionServiceUsage() As Integer
' If the Web service method hasn't been accessed,
' initialize it to 1.
If Session("MyServiceUsage") Is Nothing Then
Session("MyServiceUsage") = 1
Else
' Increment the usage count.
Session("MyServiceUsage") = CInt(Session("MyServiceUsage")) + 1
End If
Return CInt(Session("MyServiceUsage"))
End Function
End Class
Siehe auch
Weitere Ressourcen
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.