다음을 통해 공유


Default Service Behavior

이 샘플에서는 서비스 동작 설정을 구성하는 방법을 보여 줍니다. 이 샘플은 ICalculator 서비스 계약을 구현하는 Getting Started 샘플을 기반으로 합니다. 이 샘플에서는 ServiceBehaviorAttributeOperationBehaviorAttribute 특성을 사용하여 서비스 동작 및 작업 동작을 명시적으로 정의합니다. 동작은 구성 파일에서 구성할 수도 있고 코드에서 명령적으로 구성할 수도 있습니다. 이 샘플에서는 코드에서 명령적으로 구성하는 방법을 보여 줍니다.

이 샘플에서 클라이언트는 콘솔 응용 프로그램(.exe)이고 서비스는 IIS(인터넷 정보 서비스)를 통해 호스팅됩니다.

참고

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

서비스 클래스에서는 다음 코드 샘플에 표시된 것과 같이 ServiceBehaviorAttributeOperationBehaviorAttribute에 동작을 지정합니다. 지정된 모든 값은 기본값입니다.

[ServiceBehavior(
    AutomaticSessionShutdown=true,
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    IncludeExceptionDetailInFaults=false,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
    [OperationBehavior(
        TransactionAutoComplete=true,
        TransactionScopeRequired=false,
        Impersonation=ImpersonationOption.NotAllowed)]
    public double Add(double n1, double n2)
    {
        System.Threading.Thread.Sleep(1600);
        return n1 + n2;
    }
    ...
}

서비스 동작은 ServiceBehaviorAttribute 특성으로 지정됩니다. 다음 표에서는 이러한 일부 동작에 대해 설명합니다.

서비스 동작 설명

AutomaticSessionShutdown

클라이언트 요청에 따라 세션을 자동으로 종료합니다.

ConcurrencyMode

각 서비스 인스턴스의 동시성 모드를 지정합니다.

InstanceContextMode

인스턴스 컨텍스트 모드를 지정합니다.

UseSynchronizationContext

입력된 동기화 컨텍스트가 설정된 경우 사용 여부를 결정합니다. Windows Forms 응용 프로그램에서 WindowsFormsSynchronizationContext의 사용 여부를 제어하려는 경우에 사용합니다.

IncludeExceptionDetailInFaults

처리되지 않은 일반적인 실행 예외를 Fault<string>로 변환하고 오류 메시지로 보내는지 여부를 결정합니다.

TransactionIsolationLevel

트랜잭션의 격리 수준을 지정합니다.

ValidateMustUnderstand

예기치 않은 메시지 헤더가 오류 발생 조건이 되는지 여부를 결정합니다.

작업 동작은 OperationBehaviorAttribute 특성을 사용하여 지정합니다. 다음 표에서는 이러한 일부 동작에 대해 설명합니다.

작업 동작 설명

TransactionAutoComplete

서비스 작업이 완료되면 현재 트랜잭션이 커밋되는지 여부를 결정합니다.

TransactionScopeRequired

서비스 작업이 클라이언트 흐름 트랜잭션에 참여하는지 여부를 결정합니다.

Impersonation

서비스 작업에서 호출자의 ID를 가장하는지 여부를 결정합니다.

ReleaseInstanceMode

서비스 작업 호출을 시작하거나 끝낼 때 서비스 인스턴스가 재생되는지 여부를 결정합니다.

샘플을 실행하면 작업 요청 및 응답이 클라이언트 콘솔 창에 표시됩니다. 호출 사이의 지연은 서비스 작업에서 **System.Threading.Thread.Sleep()**에 대한 호출이 이루어진 결과로 발생합니다. 나머지 동작 샘플에서는 이런 동작에 대해 더 자세히 설명합니다. 클라이언트를 종료하려면 클라이언트 창에서 Enter 키를 누릅니다.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

샘플을 설치, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.

  2. C# 또는 Visual Basic .NET 버전의 솔루션을 빌드하려면 Windows Communication Foundation 샘플 빌드의 지침을 따릅니다.

  3. 단일 컴퓨터 또는 다중 컴퓨터 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.