본문 바로가기

C#(ASP.NET)

WebService (C# ASP.NET)


1. WebService 특성

[WebService(Namespace="http://MyServer/MyWebServices/",
   Description="웹서비스에 대한 설명 텍스트가 여기에 올 수 있습니다.",
   Name="MyFavoritesService")]

public class WebService1: System.Web.Services.WebService
    {
        // 코드 구현
    }

1) Namespace 
이 속성의 값에는 XML Web Service의 기본 네임스페이스가 포함됩니다. XML 네임스페이스는 URI(Uniform Resource Identifier)에 의해
식별되는 XML 문서에서 이름을 만드는 방법을 제공합니다. XML 네임스페이스를 사용하여 XML 문서에서 요소나 특성을 고유하게 식별할 수 있습니다. 따라서 XML Web Service의 서비스 설명 내에서, Namespace는 XML Web Service와 직접적으로 관련된 XML 요소의 기본 네임스페이스로 사용됩니다. 지정되어 있지 않으면 기본 네임스페이스는 http://tempuri.org/입니다.

2) Description 
이 속성의 값에는 서비스 설명과 서비스 도움말 페이지 등 XML Web Service의 설명 문서가 생성될 때 XML Web Service의 소비자에게 표시할 설명 메시지를 포함합니다. 

3) Name 
이 속성의 값에는 XML Web Service의 이름이 포함됩니다. 기본적으로 해당 값은 XML Web Service를 구현하는 클래스의 이름입니다. Name 속성은 XML Web Service의 XML 정규화된 이름에서 로컬 부분을 식별합니다. 그리고 Name 속성은 서비스 도움말 페이지에서 XML Web Service의 이름을 표시할 때 사용됩니다. 
 

2. WebMethod 특성

public class WebService1: System.Web.Services.WebService
{
    [WebMethod(BufferResponse=false,
               CacheDuration=60,
               Description="설명 텍스트",
               MessageName="RetrieveData")]
    public string TestMethod()
    {
       //구현 코드
    }

1) BufferResponse 
기본 설정인 true로 설정되면 ASP.NET에서는 전체 응답을 클라이언트로 전송하기 전에 버퍼링합니다. 버퍼링은 작업자 프로세스와 IIS프로세스 사이의 통신을 최소화함으로써 매우 효율적이며 성능을 개선하는 데 도움이 됩니다. false로 설정되면, ASP.NET에서는 응답을 16KB의 청크에 버퍼링합니다. 일반적으로 응답의 전체 내용을 한 메모리에 두고 싶지 않은 경우에만 이 속성을 false로 설정하십시오. 별도로 지정하지 않으면 기본값은 true입니다. 

2) CacheDuration 
이 속성의 값은 각각의 고유 매개 변수 집합의 결과를 ASP.NET에서 몇 초 동안 캐시해야 하는지 지정합니다. 별도로 지정하지 않으면 기본값은 0으로, 결과를 캐싱하지 못하게 합니다.
 
3) Description
이 속성의 값은 XML Web Service 메서드의 설명을 제공하는데 서비스 도움말 페이지에 나타납니다. 별도로 지정하지 않으면 기본값은 빈 문자열입니다. 

4) EnableSession 
기본 설정인 false로 설정되면 ASP.NET에서는 XML Web Service 메서드의 세션 상태에 액세스할 수 없습니다. true로 설정하면 XML Web Service는 HttpContext.Current.Session에서 직접 세션 상태 컬렉션에 액세스하거나 WebService 기본 클래스에서 상속받은 경우 WebService.Session 속성을 사용하여 직접 세션 상태 컬렉션에 액세스할 수 있습니다. 

5) MessageName
이 속성의 값을 사용하면 XML Web Service에서 별칭을 사용하여 오버로드된 메서드를 고유하게 식별할 수 있습니다. 별도로 지정하지 않으면 기본값은 메서드 이름입니다. MessageName의 값을 지정하면 결과 SOAP 메시지에서는 실제 메서드 이름 대신에 이 이름을 반영합니다. 

6) TransactionOption 
이 속성의 값은 XML Web Service 메서드가 트랜잭션의 루트 개체로 참여할 수 있는지 여부를 지정합니다. TransactionOption 속성을 TransactionOption 열거 값 중 하나로 설정할 수 있지만 XML Web Service 메서드에는 두 개의 가능한 동작만 있습니다. 트랜잭션에 참여하지 않거나(Disabled, NotSupported, Supported) 새 트랜잭션을 만드는 것(Required, RequiresNew)입니다. 별도로 지정하지 않으면 기본값은 TransactionOption.Disabled입니다. 이 속성을 사용하려면 System.EnterpriseServices.dll에 참조를 추가해야 합니다. 이 네임스페이스에는 COM+ 서비스에서 제공되는 분산 트랜잭션 모델을 지원하는 메서드와 속성이 포함됩니다. System.EnterpriseServices.ContextUtil 클래스를 사용하면 SetAbort나 SetComplete 메서드를 사용하여 트랜잭션에 대한 찬반을 투표할 수 있습니다. 

크리에이티브 커먼즈 라이선스
Creative Commons License