다음을 통해 공유


OperationContractAttribute.IsTerminating 속성

정의

회신 메시지(있는 경우)를 보낸 후 서비스 작업의 결과로 서버에서 세션을 종료할지 여부를 나타내는 값을 가져오거나 설정합니다.

public:
 property bool IsTerminating { bool get(); void set(bool value); };
public bool IsTerminating { get; set; }
member this.IsTerminating : bool with get, set
Public Property IsTerminating As Boolean

속성 값

작업의 결과로 서버에서 세션을 종료하면 true이고, 그렇지 않으면 false입니다. 기본값은 false입니다.

예제

다음 예제는 세 가지 작업을 지정하는 서비스 계약을 구현하는 서비스입니다. 서비스에 상태 저장 연결이 필요합니다. 호출자의 첫 번째 호출이 이외의 MethodOne작업에 대한 경우 채널이 거부되고 예외가 throw됩니다. 호출자가 를 호출하여 세션을 시작하면 호출자는 언제든지 를 호출MethodOneMethodThree하여 통신 세션을 종료할 수 있습니다. MethodTwo 는 세션 중에 여러 번 호출될 수 있습니다.

[ServiceContractAttribute(SessionMode=SessionMode.Required)]  
public class InitializeAndTerminateService  
{  
  [OperationContract(  
    IsOneWay=true,  
    IsInitiating=true,  
    IsTerminating=false  
  )]  
  public void MethodOne()  
  {  
    return;  
  }  

  [OperationContract(  
    IsInitiating=false,  
    IsTerminating=false  
  )]  
  public int MethodTwo(int x, out int y)  
  {  
    y = 34;  
    return 0;  
  }  

  [OperationContract(  
    IsOneWay=true,  
    IsInitiating=false  
    IsTerminating=true  
  )]  
  public void MethodThree()  
  {  
    return;  
  }  
}  

설명

사용 하 여는 IsTerminating 서비스 작업을 호출 통신 세션을 종료 함을 나타내는 속성입니다.

클라이언트 애플리케이션에서 값이 IsTerminatingtrue 하도록 WCF에 하면 회신이 도착 한 후에 채널을 닫도록 지시 합니다.

서비스에서 타이머가 설정되고 클라이언트가 해당 기간 내에 채널을 닫지 않으면 채널이 중단됩니다.

세션에 이 속성을 사용하는 방법에 대한 자세한 내용은 세션 사용을 참조하세요.

참고

호출자가 OperationContext.OperationCompleted 작업에 대한 OperationContractAttribute.IsTerminating 이벤트를 수신 대기하고 있는 경우 응답을 수신할 때 차단할 수 있습니다. 이 차단 작업을 처리하는 올바른 방법은 OperationCompleted가 발생하면 다른 스레드에서 작업을 예약한 다음 해당 이벤트 처리기에서 이 이벤트를 즉시 반환하는 것입니다.

적용 대상