ReliableSession.InactivityTimeout Свойство

Определение

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

public:
 property TimeSpan InactivityTimeout { TimeSpan get(); void set(TimeSpan value); };
public TimeSpan InactivityTimeout { get; set; }
member this.InactivityTimeout : TimeSpan with get, set
Public Property InactivityTimeout As TimeSpan

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

Значение TimeSpan , указывающее интервал времени, который служба остается неактивной перед закрытием. Значение по умолчанию равно 10 минутам.

Исключения

Набор значений меньше или равен нулю.

Примеры

// Create a new reliable session object
ReliableSessionBindingElement bindingElement = new ReliableSessionBindingElement();
ReliableSession reliableSession = new ReliableSession(bindingElement);

// Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered);
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout);
' Create a new reliable session object
Dim bindingElement As ReliableSessionBindingElement = New ReliableSessionBindingElement()
Dim reliableSession As ReliableSession = New ReliableSession(bindingElement)

' Now you can access property values
Console.WriteLine("Ordered: {0}", reliableSession.Ordered)
Console.WriteLine("InactivityTimeout: {0}", reliableSession.InactivityTimeout)

Комментарии

Свойство получает и задает значение InactivityTimeout свойства.

Действие на канале определяется как получение сообщения приложения или инфраструктуры. Свойство времени ожидания бездействия управляет максимальным временем для сохранения неактивного сеанса. Если более указанного InactivityTimeout интервала времени проходит без действия, сеанс прерывается инфраструктурой и сбоями канала. Надежный сеанс отключается в одностороннем порядке.

Если у отправляющего приложения нет сообщений для отправки, то надежный сеанс, как правило, неисправен из-за неактивности; Вместо этого механизм поддержания активности сохраняет сеанс активным на неопределенный срок. Обратите внимание, что диспетчер может независимо прерывать надежный сеанс, если сообщения приложения не отправляются или не получаются. Таким образом, время ожидания бездействия обычно истекает, если сетевые условия таковы, что сообщения любого рода не получены или если на отправителем произошел сбой.

Установка этого тайм-аута предотвращает удержание сервера на сеанс безопасности, если клиент не закрывает его. Если сеанс безопасности не получил сообщение о неактивном интервале времени, он закрывается сервером. Это устраняет потенциальную атаку типа "отказ в обслуживании".

При использовании надежного сеанса существует два разных таймера бездействия, которые должны быть удовлетворены для поддержания работоспособности подключения. Если любой из этих таймеров бездействия отключается, подключение удаляется.

  • Первый таймер бездействия находится в надежном сеансе и называется InactivityTimeout. Этот таймер бездействия возникает, если сообщения, приложения или инфраструктура, не будут получены в течение периода ожидания. Сообщение инфраструктуры — это сообщение, созданное для целей одного из протоколов в стеке каналов, таких как поддержание активности или подтверждение, а не хранение данных приложения.

  • Второй таймер бездействия находится в службе и использует ReceiveTimeout параметр привязки. Этот таймер бездействия запускается, если сообщения приложения не получены в течение периода ожидания.

Так как соединение удаляется при срабатывании таймера бездействия, увеличение InactivityTimeout после того, как оно больше, чем ReceiveTimeout не имеет эффекта. Значение по умолчанию для обоих этих тайм-аутов составляет 10 минут, поэтому при использовании надежного сеанса всегда необходимо увеличить оба из них.

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