2008-10-23 4 views
61

Как работают таймауты в WCF? Я знаю, например, что вы можете настроить sendTimeout и receiveTimeout для привязки клиентов. Но как они работают?Таймауты Услуги WCF

MSDN описывает SendTimeout как:

значение TimeSpan, который определяет интервал времени, предусмотренного в операции отправки завершения. Это значение должно быть больше или равно до нуля. Значение по умолчанию - 00:01:00.

Что такое операции отправки/получения?

ответ

61

сторона клиента:

  • SendTimeout используется для инициализации OperationTimeout, который регулирует все взаимодействия для отправки сообщения (в том числе получения ответного сообщения в случае запроса ответа). Этот тайм-аут также применяется при отправке ответных сообщений из метода CallbackContract.
  • OpenTimeout и CloseTimeout используются при открытии и закрытии каналов (при отсутствии явного значения тайм-аута).
  • ReceiveTimeout не используется.

стороне сервера:

  • Отправить, Open и Close Timeout же, как и на клиенте (для обратных вызовов).
  • ReceiveTimeout используется уровнем ServiceFramework для инициализации тайм-аута ожидания сеанса.

Исходный код Brian McNamara on MSDN forums.

+0

Эта ссылка мертвая, может ли кто-нибудь ее обновить? – BrettRobi 2010-05-03 17:51:54

9

Смотрите "таймаутов в WCF и их значения по умолчанию" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

таймауты на связывание-SendTimeout, ReceiveTimeout, OpenTimeout и CloseTimeout. Их можно легко установить либо через конфигурацию или код , либо на Binding. Значение по умолчанию для них: 1 минут.

ServiceHost имеет OpenTimeout и CloseTimeout. Значение по умолчанию для OpenTimeout составляет 1 минуту, а значение по умолчанию для CloseTimeout составляет 10 секунд.

Таймауты на стороне канала клиента. Существует OperationTimeout, который вы можете установить его, переведя канал в IContextChannel. По умолчанию для этого также 1 минута. Ttimeout на tcp-транспорте, называется ChannelInitializationTimeout, а его значение по умолчанию - 5 секунд.

ASPNET.Есть тайм-аут выключения, так же как и у хоста службы таймаут, по умолчанию 90 секунд. ExecutionTimeout, как и наш период ожидания, по умолчанию - 110 секунд.

Смежные вопросы