WCF绑定SendTimeout是否仅用于初始化通道OperationTimeout



注意:我读了这个、那个和那边,仍然不完全清楚我是否得到了这个:

根据MSDN:,WCF绑定SendTimeout和WCF IContextChannel OperationTimeout都是

获取或设置操作必须完成或引发异常的时间段(如果在绑定或通道上启用了事务流,则执行操作可能需要比指定的超时更长的时间。在这种情况下,操作会由于超时而失败,事务会适当中止。)

另据MSDN报道:

SendTimeout–用于初始化OperationTimeout,它控制发送消息的整个过程,包括接收请求/回复服务操作的回复消息。

因此,绑定SendTimeout属性根本不被用作实际超时,它只是(?!)用于初始化(所有?)通信信道的默认OperationTimeout

注意:我验证了当我将Binding.SendTimeout设置为非默认值时,ChannelFactory.CreateChannel返回的通道(当使用绑定初始化工厂时)确实具有与设置的SendTimeout相同的IContextChannel.OperationTimeout

是否还有其他内容,或者SendTimeout确实只是通道上OperationTimeout的初始值设定项值?

通常,绑定上的所有设置都只用于"设计时"。在运行时,它们用于初始化作为有效值的通道。

用一行字回答您的问题:

不,它不是(仅用于初始化OperationContext)。

它还用于覆盖写入操作本身的超时。我在这里也回答了这个问题。

相关内容

  • 没有找到相关文章