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

Определение

Возвращает или задает значение, указывающее, приводит ли операция службы к закрытию сеанса сервером после отправки ответного сообщения, если оно есть.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

Значение свойства

Значение true, если операция приводит к закрытию сеанса сервером; в противном случае — значение false.true if the operation causes the server to close the session, otherwise, false. Значение по умолчанию — false.The default is false.

Примеры

В следующем примере представлена служба, которая реализует контракт службы, определяющий три операции.The following example is a service that implements a service contract that specifies three operations. Службе требуется соединение с отслеживанием состояния.The service requires a stateful connection. Если первый вызов вызывающего объекта предназначен для любой операции, кроме MethodOne, канал отклоняется и создается исключение.If a caller's first call is to any operation other than MethodOne, the channel is refused and an exception is thrown. Если вызывающий объект инициирует сеанс, вызывая операцию MethodOne, он может завершить этот сеанс связи в любое время, вызвав операцию MethodThree.When a caller initiates a session by calling MethodOne, that caller can terminate the communication session at any time by calling MethodThree. Операция MethodTwo может быть вызвана в течение сеанса любое число раз.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;  
  }  
}  

Комментарии

Используйте свойство IsTerminating, чтобы указать, что вызов операции службы завершает сеанс связи.Use the IsTerminating property to indicate that calling a service operation terminates the communication session.

В клиентском приложении значение IsTerminating, равное true, указывает WCF закрыть канал после получения ответа.In a client application, a value of IsTerminating set to true instructs WCF to close the channel after the reply arrives.

В службе устанавливается таймер и, если в течение определенного этим таймером времени клиент не закрывает канал, канал прерывается.In a service, a timer is set and the channel aborts if the client does not close the channel within that period.

Дополнительные сведения об использовании этого свойства с сеансами см. в разделе использование сеансов.For more information about using this property with sessions, see Using Sessions.

Примечание

Если вызывающий объект прослушивает событие OperationContext.OperationCompleted для операции OperationContractAttribute.IsTerminating, при получении ответа возможна блокировка.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. Для надлежащей обработки такой ситуации необходимо запланировать работу в другом потоке при появлении события OperationCompleted и затем немедленно вернуться из этого обработчика событий.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.

Применяется к