OperationContractAttribute.IsTerminating OperationContractAttribute.IsTerminating OperationContractAttribute.IsTerminating OperationContractAttribute.IsTerminating Property

Définition

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).Gets or sets a value that indicates whether the service operation causes the server to close the session after the reply message, if any, is sent.

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.true if the operation causes the server to close the session, otherwise, false. La valeur par défaut est false.The default is false.

Exemples

L'exemple suivant est un service qui implémente un contrat de service qui spécifie trois opérations.The following example is a service that implements a service contract that specifies three operations. Le service requiert une connexion avec état.The service requires a stateful connection. 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.If a caller's first call is to any operation other than MethodOne, the channel is refused and an exception is thrown. Lorsqu'un appelant démarre une session en appelant MethodOne, cet appelant peut arrêter la session de communication à tout moment en appelant MethodThree.When a caller initiates a session by calling MethodOne, that caller can terminate the communication session at any time by calling MethodThree. MethodTwo peut être appelé sans limite au cours d'une session.MethodTwo can be called any number of times during a 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.Use the IsTerminating property to indicate that calling a service operation terminates the communication session.

Dans une application cliente, une valeur de IsTerminating la valeur true indique à WCF de fermer le canal une fois que la réponse est arrivée.In a client application, a value of IsTerminating set to true instructs WCF to close the channel after the reply arrives.

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.In a service, a timer is set and the channel aborts if the client does not close the channel within that period.

Pour plus d’informations sur l’utilisation de cette propriété dans des sessions, consultez à l’aide de Sessions.For more information about using this property with sessions, see Using 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.If a caller is listening for the OperationContext.OperationCompleted event for an OperationContractAttribute.IsTerminating operation, it is possible to block when the response is received. 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.The proper way to handle this is to schedule work on another thread when OperationCompleted is raised and then immediately return from that event handler.

S’applique à