OperationContractAttribute.IsTerminating Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si l'opération de service conduit le serveur à fermer la session après l'envoi du message de réponse (le cas échéant).
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
Valeur de propriété
true
si l'opération conduit le serveur à fermer la session ; sinon, false
. La valeur par défaut est false
.
Exemples
L'exemple suivant est un service qui implémente un contrat de service qui spécifie trois opérations. Le service requiert une connexion avec état. Si le premier appel d'un appelant est destiné à une opération autre que MethodOne
, le canal est refusé et une exception est levée. Lorsqu'un appelant démarre une session en appelant MethodOne
, cet appelant peut arrêter la session de communication à tout moment en appelant MethodThree
.
MethodTwo
peut être appelé n’importe quel nombre de fois au cours d’une session.
[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;
}
}
Remarques
Utilisez la propriété IsTerminating pour indiquer que l'appel d'une opération de service termine la session de communication.
Dans une application cliente, une valeur définie IsTerminating sur indique à true
WCF de fermer le canal une fois la réponse arrivée.
Dans un service, un minuteur est défini et le canal abandonne si le client ne ferme pas le canal avant la fin du délai.
Pour plus d’informations sur l’utilisation de cette propriété avec des sessions, consultez Utilisation de sessions.
Notes
Si un appelant écoute l'événement OperationContext.OperationCompleted pour une opération OperationContractAttribute.IsTerminating, il est possible de bloquer lors de la réception de la réponse. Pour gérer correctement cela, il convient de planifier des travaux sur un autre thread lorsque OperationCompleted est déclenché, puis de retourner immédiatement à partir de ce gestionnaire d'événements.