OperationContractAttribute.IsInitiating 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드가 서버의 세션(있는 경우)을 시작할 수 있는 작업을 구현할지 여부를 나타내는 값을 가져오거나 설정합니다.
public:
property bool IsInitiating { bool get(); void set(bool value); };
public bool IsInitiating { get; set; }
member this.IsInitiating : bool with get, set
Public Property IsInitiating As Boolean
속성 값
작업에서 서버의 세션을 시작할 수 있으면 true
이고, 그렇지 않으면 false
입니다. 기본값은 true
입니다.
예제
다음 예제는 세 가지 메서드를 지정하는 서비스 계약을 구현하는 서비스입니다. 서비스에는 세션이 필요합니다. 호출자의 첫 번째 호출이 아닌 MethodOne
다른 작업에 대한 경우 채널이 거부되고 예외가 throw됩니다. 호출자가 호출하여 세션을 시작하면 해당 호출자는 언제든지 호출MethodOne``MethodThree
하여 통신 세션을 종료할 수 있습니다. MethodTwo
는 세션 중에 여러 번 호출할 수 있습니다.
[ServiceContract(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;
}
}
설명
이 속성은 IsInitiating 세션을 만들 때 작업이 호출된 첫 번째 작업이 될 수 있는지 여부를 제어합니다.
참고
값 ServiceContractAttribute.SessionMode 은 사용 중인 바인딩 중 하나 Required Allowed 여야 하며 속성이 제대로 작동하려면 세션이 IsInitiating 필요하거나 허용해야 합니다.
기본값은 true
작업이 채널에서 호출된 첫 번째 작업이 될 수 있음을 의미합니다. 시작 메서드에 대한 후속 호출은 메서드를 호출하는 것 외에는 효과가 없습니다. 다른 세션은 만들어지지 않습니다. 계약이 세션을 사용하지 않는 경우 설정 IsInitiating false
은 무시됩니다.
일반적으로 클라이언트가 이 메서드를 호출하기 false
전에 서비스에서 다른 메서드를 호출하도록 강제 설정 IsInitiating 했습니다. 예를 들어 서비스에 주문 ID 번호에 따라 일련의 작업이 있는 경우 서비스 작업으로 true
GetOrderId
설정하고 IsInitiating 나머지 모든 서비스 작업을 으로 설정할 수 있습니다false
. 이렇게 하면 서비스에서 노출하는 다른 메서드를 사용하기 전에 각 새 클라이언트가 주문 ID를 얻습니다.
참고
속성과 속성 간의 IsInitiating 상호 작용이 있습니다 Action . 서비스 계약에는 속성이 "*"로 Action 설정된 하나의 서비스 작업만 있을 수 있습니다. 서비스 클래스가 구현하는 동일한 수신 대기 URI에서 호스트되는 모든 서비스 계약 그룹에는 속성false
이 "*"IsInitiating로 설정된 여러 서비스 작업이 Action 있을 수 있습니다. 그러나 이러한 서비스 메서드 중 하나만 속성을 ""IsInitiating로 설정하고 속성을 으로 설정할 true
수 있습니다Action.*
서비스가 시작되지 않는 작업에 대한 메시지를 수신하는 경우 서비스는 ActionNotSupported SOAP 오류를 반환합니다. 클라이언트는 이를 .로 FaultException경험합니다. 클라이언트가 먼저 시작하지 않는 작업을 호출하는 경우 클라이언트 런타임은 .System.InvalidOperationException
자세한 내용은 세션 사용을 참조하세요.