注意:我看过this,that和yonder,如果我知道这一点还不完全清楚:
根据MSDN,WCF绑定SendTimeout以及WCF IContextChannel OperationTimeout:
获取或设置操作必须完成或抛出异常的时间段。 (如果在绑定或通道上启用了事务流,则执行操作可能需要比指定的超时更长的时间。在这些情况下,操作由于超时过期而失败,并且事务正确中止。)
同样根据MSDN:
SendTimeout - 用于初始化OperationTimeout ,它控制发送消息的整个过程,包括接收请求/回复服务操作的回复消息。
因此,绑定的SendTimeout
属性根本不用作实际超时,用于初始化的只是(??!)默认的(所有?)通讯频道'OperationTimeout
?
注意:我验证了当我将Binding.SendTimeout
设置为非默认值时,ChannelFactory.CreateChannel
返回的通道(当使用绑定初始化工厂时)确实具有相同的IContextChannel.OperationTimeout
作为设置SendTimeout。
还有什么,或者SendTimeout确实只是通道上OperationTimeout的初始化值?
答案 0 :(得分:1)
通常,绑定的所有设置仅适用于“设计时”。在运行时,它们用于初始化作为有效值的通道。
答案 1 :(得分:1)