Поделиться через


Binding.ReceiveTimeout Свойство

Определение

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

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

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

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

Исключения

Заданное значение меньше нуля или слишком велико.

Комментарии

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

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

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

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

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

При использовании безопасности с сеансами значение, ReceiveTimeout заданное для привязки, также используется в качестве времени ожидания сеанса.

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