Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Свойство Binding.ReceiveTimeout

 

Опубликовано: Октябрь 2016

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

Пространство имен:   System.ServiceModel.Channels
Сборка:  System.ServiceModel (в System.ServiceModel.dll)

public TimeSpan ReceiveTimeout { get; set; }

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

Type: System.TimeSpan

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

Exception Condition
ArgumentOutOfRangeException

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

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

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

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

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

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

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

Универсальная платформа Windows
Доступно с 8
.NET Framework
Доступно с 3.0
Переносимая библиотека классов
Поддерживается в: переносимые платформы .NET
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Вернуться в начало
Показ: