HOW TO:在使用 ASP.NET 建立的 Web 服務中管理狀態
當實作 Web 服務的類別衍生自 WebService 類別時,Web 服務就像其他 ASP.NET 應用程式一樣,可以存取相同的狀態管理選項。WebService 類別包含許多通用 ASP.NET 物件,包括 Session 和 Application 物件。
存取及儲存特定用戶端工作階段的特定狀態
宣告 Web 服務。
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
加入 System.Web.Services 命名空間的參考。
using System.Web.Services;
Imports System.Web.Services
從 WebService 衍生實作 Web 服務的類別。
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
宣告 Web 服務方法,並將 WebMethod 屬性 (Attribute) 的 EnableSession 屬性 (Property) 設定為 true。
[ WebMethod(EnableSession=true) ] public int PerSessionServiceUsage()
< WebMethod(EnableSession:=True) > _ Public Function PerSessionServiceUsage() As Integer
在 Session 中儲存狀態,這會指定狀態名稱以供稍後擷取。在下列範例中,值
1
是儲存在一個名為MyServiceUsage
的狀態變數。Session["MyServiceUsage"] = 1;
Session("MyServiceUsage") = 1
存取 Session 中儲存的狀態變數。
在下列範例中,會存取
MyServiceUsage
狀態變數以遞增其值。Session["MyServiceUsage"] = ((int) Session["MyServiceUsage"]) + 1;
Session("MyServiceUsage") = CInt(Session("MyServiceUsage")) + 1
存取及儲存裝載 Web 服務的 Web 應用程式特定的狀態
宣告 Web 服務。
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
加入 System.Web.Services 命名空間的參考。
using System.Web.Services;
Imports System.Web.Services
從 WebService 衍生實作 Web 服務的類別。
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
宣告 Web 服務方法。
[ WebMethod ] public int PerSessionServiceUsage()
< WebMethod > _ Public Function PerSessionServiceUsage() As Integer
在 Application 中儲存狀態,這會指定狀態名稱以供稍後擷取。在下列範例中,值
1
儲存在一個名為appMyServiceUsage
的狀態變數中。Application["appMyServiceUsage"] = 1;
Application("appMyServiceUsage") = 1
存取 Application 中儲存的狀態變數。
在下列範例中,會存取
appMyServiceUsage
狀態變數以遞增其值。Application["appMyServiceUsage"] = ((int) Application["appMyServiceUsage"]) + 1;
Application("appMyServiceUsage") = _ CInt(Application("appMyServiceUsage")) + 1
範例
<%@ 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
請參閱
其他資源
Copyright © 2007 by Microsoft Corporation. All rights reserved.