Разница между OperationTimeout и SendTimeout в WCF

После довольно многого поиска я не смог найти ответ на этот вопрос.

Что такое точная разница между OperationTimeout и SendTimeout? Я читаю OperationTimeout - это подмножество SendTimeout и SendTimeout включает в себя запись сообщения в канал. Если вы дадите более подробную информацию, это было бы здорово.

Мой второй вопрос: у меня есть клиентский вызов службы, где я просто хочу установить таймаут между скоро после отправки запроса на сервер и вскоре после получения ответа с сервера. Как установить этот тайм-аут?

Ответы

Ответ 1

Я хотел бы предложить прочитать этот ответ от Брайана Макнамары на форумах MSFT:

Краткий обзор тайм-аута привязки ручки...

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

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

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

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