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 также используется в качестве времени ожидания сеанса.