Тайм-ауты услуг WCF

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

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

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

Что такое операции отправки/приема?

Ответ 1

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

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

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

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

Источник Брайан Макнамара на форумах MSDN.

Ответ 2

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

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

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

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

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

Ответ 3

В дополнение к тому, что было на этом посту, также существует тайм-аут операции, определенный на стороне клиента. Смотрите это:

http://final-proj.blogspot.com/2009/09/wcf-timeouts.html