OperationContractAttribute.IsTerminating Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.