Compartir a través de


OperationContractAttribute.IsTerminating Propiedad

Definición

Obtiene o establece un valor que indica si la operación de servicio hace que el servidor cierre la sesión después de enviar el mensaje de respuesta, si lo hubiera.

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

Valor de propiedad

true si la operación provoca que el servidor cierre la sesión, de lo contrario, false. De manera predeterminada, es false.

Ejemplos

El ejemplo siguiente es un servicio que implementa un contrato de servicio que especifica tres operaciones. El servicio requiere una conexión con estado. Si la primera llamada de un autor de la llamada es a cualquier operación distinta de MethodOne, se rechaza el canal y se produce una excepción. Cuando un autor de la llamada inicia una sesión llamando a MethodOne, ese autor de la llamada puede terminar la sesión de comunicación en cualquier momento llamando a MethodThree. MethodTwo se puede llamar a cualquier número de veces durante una sesión.

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

Comentarios

Utilice la propiedad IsTerminating para indicar que al llamar a una operación de servicio, se finaliza la sesión de comunicación.

En una aplicación cliente, un valor de IsTerminating establecido en indica a true WCF que cierre el canal después de que llegue la respuesta.

En un servicio, se establece un temporizador y el canal anula si el cliente no cierra el canal dentro de ese período.

Para obtener más información sobre el uso de esta propiedad con sesiones, vea Uso de sesiones.

Nota:

Si el autor de la llamada está escuchando el evento OperationContext.OperationCompleted para una operación OperationContractAttribute.IsTerminating, es posible bloquear cuando se reciba la respuesta. La manera adecuada de gestionar esto es programar el trabajo en otro subproceso cuando se llega a OperationCompleted y entonces devolver inmediatamente desde ese controlador de eventos.

Se aplica a