방법: ASP.NET을 사용하여 만든 웹 서비스에서 상태 관리
이 항목은 레거시 기술과 관련된 것입니다. 이제 XML Web services와 XML Web services 클라이언트는 다음을 사용하여 만들어야 합니다. Windows Communication Foundation.
웹 서비스를 구현하는 클래스가 WebService 클래스에서 파생된 경우 웹 서비스는 다른 ASP.NET 응용 프로그램과 동일한 상태 관리 옵션에 액세스할 수 있습니다. WebService 클래스에는 Session 및 Application 개체를 포함하여 많은 수의 공통 ASP.NET 개체가 포함되어 있습니다.
특정 클라이언트 세션에 대한 상태를 액세스하고 저장하려면
웹 서비스를 선언합니다.
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
System.Web.Services 네임스페이스에 대한 참조를 추가합니다.
using System.Web.Services;
Imports System.Web.Services
웹 서비스를 구현하는 클래스를 WebService에서 파생시킵니다.
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
WebMethod 특성의 EnableSession 속성을 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
웹 서비스를 호스팅하는 특정 웹 응용 프로그램에 대한 상태를 액세스하고 저장하려면
웹 서비스를 선언합니다.
<%@ WebService Language="C#" Class="ServerUsage" %>
<%@ WebService Language="VB" Class="ServerUsage" %>
System.Web.Services 네임스페이스에 대한 참조를 추가합니다.
using System.Web.Services;
Imports System.Web.Services
웹 서비스를 구현하는 클래스를 WebService에서 파생시킵니다.
public class ServerUsage : WebService
Public Class ServerUsage : Inherits WebService
웹 서비스 메서드를 선언합니다.
[ 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