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