Freigeben über


OperationContractAttribute.IsTerminating Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der Dienstvorgang bewirkt, dass der Server die Sitzung schließt, nachdem die Antwortnachricht gesendet wurde.

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

Eigenschaftswert

true, wenn der Vorgang bewirkt, dass der Server die Sitzung schließt, andernfalls false. Der Standardwert ist false.

Beispiele

Das folgende Beispiel enthält einen Dienst, der einen Dienstvertrag implementiert, der drei Vorgänge angibt. Der Dienst erfordert eine statusbehaftete Verbindung. Ruft der Aufrufer zuerst einen anderen Vorgang als MethodOne auf, wird der Kanal verweigert, und es wird eine Ausnahme ausgelöst. Initiiert ein Aufrufer eine Sitzung durch Aufruf von MethodOne, kann dieser Aufrufer die Kommunikationssitzung jederzeit durch den Aufruf von MethodThree beenden. MethodTwo kann während einer Sitzung beliebig oft aufgerufen werden.

[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;  
  }  
}  

Hinweise

Verwenden Sie die IsTerminating-Eigenschaft, um anzugeben, dass durch den Aufruf eines Dienstvorgangs die Kommunikationssitzung beendet wird.

In einer Clientanwendung weist ein Wert von IsTerminating festgelegt WCF true an, den Kanal zu schließen, nachdem die Antwort eingetroffen ist.

In einem Dienst wird ein Timer festgelegt, und der Kanal bricht ab, wenn er nicht innerhalb dieses Zeitraums vom Client geschlossen wird.

Weitere Informationen zur Verwendung dieser Eigenschaft mit Sitzungen finden Sie unter Verwenden von Sitzungen.

Hinweis

Überwacht ein Aufrufer das OperationContext.OperationCompleted-Ereignis im Hinblick auf einen OperationContractAttribute.IsTerminating-Vorgang, ist beim Empfang der Antwort eine Blockierung möglich. Die Behandlung dieses Vorgangs wird korrekt ausgeführt, wenn Sie bei Auslösen von OperationCompleted Arbeit auf einem anderen Thread planen und umgehend von diesem Ereignishandler zurückkehren.

Gilt für: