OperationContractAttribute.IsTerminating Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se l'operazione di servizio causa la chiusura della sessione da parte del server dopo l'invio di un eventuale messaggio di risposta.
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
Valore della proprietà
true se l'operazione fa sì che il server chiuda la sessione; in caso contrario, false. Il valore predefinito è false.
Esempio
L'esempio seguente è un servizio che implementa un contratto di servizio che specifica tre operazioni. Il servizio richiede una connessione con stato. Se la prima chiamata di un chiamante è a qualsiasi operazione diversa MethodOneda , il canale viene rifiutato e viene generata un'eccezione. Quando un chiamante avvia una sessione chiamando MethodOne, il chiamante può terminare la sessione di comunicazione in qualsiasi momento chiamando MethodThree.
MethodTwo può essere chiamato un numero qualsiasi di volte durante una sessione.
[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;
}
}
Commenti
Utilizzare la IsTerminating proprietà per indicare che la chiamata a un'operazione del servizio termina la sessione di comunicazione.
In un'applicazione client, un valore IsTerminating impostato su indica a true WCF di chiudere il canale dopo l'arrivo della risposta.
In un servizio viene impostato un timer e il canale viene interrotto se il client non chiude il canale entro tale periodo.
Per altre informazioni sull'uso di questa proprietà con sessioni, vedere Uso di sessioni.
Annotazioni
Se un chiamante è in ascolto dell'evento OperationContext.OperationCompleted per un'operazione OperationContractAttribute.IsTerminating , è possibile bloccare quando viene ricevuta la risposta. Il modo corretto per gestire questa operazione consiste nel pianificare il lavoro su un altro thread quando OperationCompleted viene generato e quindi restituire immediatamente da tale gestore eventi.