OperationContractAttribute.IsTerminating 속성
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
회신 메시지(있는 경우)를 보낸 후 서비스 작업의 결과로 서버에서 세션을 종료할지 여부를 나타내는 값을 가져오거나 설정합니다.
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됩니다. 호출자가 를 호출하여 세션을 시작하면 호출자는 언제든지 를 호출MethodOne
MethodThree
하여 통신 세션을 종료할 수 있습니다.
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 서비스 작업을 호출 통신 세션을 종료 함을 나타내는 속성입니다.
클라이언트 애플리케이션에서 값이 IsTerminating 로 true
하도록 WCF에 하면 회신이 도착 한 후에 채널을 닫도록 지시 합니다.
서비스에서 타이머가 설정되고 클라이언트가 해당 기간 내에 채널을 닫지 않으면 채널이 중단됩니다.
세션에 이 속성을 사용하는 방법에 대한 자세한 내용은 세션 사용을 참조하세요.
참고
호출자가 OperationContext.OperationCompleted 작업에 대한 OperationContractAttribute.IsTerminating 이벤트를 수신 대기하고 있는 경우 응답을 수신할 때 차단할 수 있습니다. 이 차단 작업을 처리하는 올바른 방법은 OperationCompleted가 발생하면 다른 스레드에서 작업을 예약한 다음 해당 이벤트 처리기에서 이 이벤트를 즉시 반환하는 것입니다.
제품 | 버전 |
---|---|
.NET | 8 (package-provided) |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1 |
.NET Standard | 2.0 (package-provided) |
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.