WCF中OperationTimeout和SendTimeout之间的区别

经过相当多的搜索,我找不到这个问题的答案。

OperationTimeoutSendTimeout之间的确切区别是什么? 我读取OperationTimeoutSendTimeout的子集, SendTimeout包括在通道中写入消息。 如果您提供更多详细信息,那就太棒了。

我的第二个问题是我有一个客户端调用服务,我只想在发送到服务器的请求之后不久和服务器收到回复之后设置超时。 如何设置此超时?

我想建议在MSFT论坛上阅读Brian McNamara的回答 :

绑定超时旋钮的简短摘要……

客户端:

  • SendTimeout用于初始化OperationTimeout,它控制发送消息的整个交互(包括在请求 – 回复情况下接收回复消息)。 从CallbackContract方法发送回复消息时,此超时也适用。
  • 打开和关闭通道时使用OpenTimeout和CloseTimeout(当没有传递显式超时值时)。
  • 未使用ReceiveTimeout。

服务器端:

  • 发送,打开和关闭超时与客户端(用于回调)相同。
  • ServiceFramework层使用ReceiveTimeout初始化会话空闲超时。