【发布时间】:2015-06-16 04:17:06
【问题描述】:
注意:我读过this、that 和yonder,但我是否得到这个仍然不完全清楚:
根据 MSDN,WCF 绑定 SendTimeout 以及 WCF IContextChannel OperationTimeout 两者:
获取或设置操作必须完成或引发异常的时间段。 (如果在绑定或通道上启用了事务流,则操作的执行时间可能会超过指定的超时时间。在这种情况下,由于超时超时,操作会失败,并且事务会适当地中止。)
还有根据MSDN:
SendTimeout - 用于初始化 OperationTimeout,它控制发送消息的整个过程,包括接收请求/回复服务操作的回复消息。
所以,Binding 的SendTimeout 属性根本没有用作真正的超时,它只是(??!)用于初始化默认值(所有?)沟通渠道的OperationTimeout?
注意:我验证了当我将Binding.SendTimeout 设置为非默认值时,ChannelFactory.CreateChannel(使用绑定初始化工厂时)返回的通道确实与设置的 SendTimeout 具有相同的IContextChannel.OperationTimeout。
还有什么更多的吗,或者 SendTimeout 确实只是通道上 OperationTimeout 的初始化值?
【问题讨论】:
标签: wcf timeout wcf-binding