OperationContractAttribute.IsTerminating Свойство

Определение

Возвращает или задает значение, указывающее, приводит ли операция службы к закрытию сеанса сервером после отправки ответного сообщения, если оно есть.

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. Значение по умолчанию — false.

Примеры

В следующем примере показана служба, реализующая контракт службы, указывающий три операции. Для службы требуется подключение с отслеживанием состояния. Если первый вызов вызывающего объекта является любой операцией, отличной от MethodOneоперации, канал отклоняется и возникает исключение. Когда вызывающий инициирует сеанс путем вызова MethodOne, вызывающий объект может завершить сеанс связи в любое время путем вызова MethodThree. MethodTwo можно вызывать любое количество раз во время сеанса.

[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 Используйте свойство, чтобы указать, что вызов операции службы завершает сеанс обмена данными.

В клиентском приложении значение IsTerminating набора, указывающее true WCF закрыть канал после поступления ответа.

В службе таймер задается, а канал прерывается, если клиент не закрывает канал в течение этого периода.

Дополнительные сведения об использовании этого свойства с сеансами см. в разделе "Использование сеансов".

Note

Если вызывающий объект прослушивает OperationContext.OperationCompleted событие для OperationContractAttribute.IsTerminating операции, можно заблокировать при получении ответа. Правильный способ обработки этого — запланировать работу в другом потоке при OperationCompleted возникновении, а затем немедленно вернуться из этого обработчика событий.

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