Тайм-ауты услуг 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