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 возникновении, а затем немедленно вернуться из этого обработчика событий.