WCF绑定SendTimeout仅用于初始化通道OperationTimeout吗?

时间:2015-04-10 12:31:33

标签: wcf timeout wcf-binding

注意:我看过thisthatyonder,如果我知道这一点还不完全清楚:

根据MSDN,

WCF绑定SendTimeout以及WCF IContextChannel OperationTimeout

  

获取或设置操作必须完成或抛出异常的时间段。 (如果在绑定或通道上启用了事务流,则执行操作可能需要比指定的超时更长的时间。在这些情况下,操作由于超时过期而失败,并且事务正确中止。)

同样根据MSDN

  

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

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

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

还有什么,或者SendTimeout确实只是通道上OperationTimeout的初始化值?

2 个答案:

答案 0 :(得分:1)

通常,绑定的所有设置仅适用于“设计时”。在运行时,它们用于初始化作为有效值的通道。

答案 1 :(得分:1)

要在一行中回答您的问题:

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

它也用于覆盖写操作本身的超时。我也回答了这个here