WCF全面解析(上下册)3.2.2 DefaultCommunicationTimeouts_WCF全面解析(上下册)3.2.2 DefaultCommunicationTimeouts试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > WCF全面解析(上下册) > 3.2.2 DefaultCommunicationTimeouts

WCF全面解析(上下册)——3.2.2 DefaultCommunicationTimeouts

DefaultCommunicationTimeouts 较之一般意义上的方法调用,通信操作往往需要花费较长的时间。对于一个通信对象来说,如果针对它的某个方法调用在一段较长的时间内还没有返回,我们不可能无条件地等待下去,所以超时处理对于通信对象来说显得尤为重要。 通信对象的很多方法调用都会设置一个超时时限。回顾一下ICommunicationObject接口用于开启通信对象的Open方法,我们会发现它具有两个重载,其中一个具有TimeSpan类型的timeout参数,另一个则没有。这里的timeout参数实际上代表Open方法执行的超时时限。如果Open操作执行的时间过长,一旦超过了设定的时限,便会抛出TimeoutException异常。 public interface ICommunicationObject { //其他成员 void Open(); void Open(TimeSpan timeout); } 读者可能会问,如果调用无参数的Open方法,是否意味着没有超时限制并会一直等待方法返回呢?答案是否定的。对于没有显式指定超时时限的方法调用有默认的超时时限。WCF为所有需要默认超时设置的通信对象定义了System.ServiceModel.IDefaultCommunicationTimeouts接口,定义在该接口中的4个XxxTimeout属性分别代表开启、关闭、发送和接收4大操作默认的超时时限。 public interface IDefaultCommunicationTimeouts { TimeSpan CloseTimeout { get; } TimeSpan OpenTimeout { get; } TimeSpan ReceiveTimeout { get; } TimeSpan SendTimeout { get; } } 包括Binding在内的很多绑定模型成员都实现了IDefaultCommunicationTimeouts接口,包括上面提到的信道管理器的基类ChannelManagerBase和信道的基类ChannelBase。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《WCF全面解析(上下册)》其他试读目录

• 3.1.1 信道与信道栈
• 3.1.2 实例演示:直接通过绑定进行消息通信
• 3.1.3 WCF的绑定模型
• 3.2.1 CommunicationObject
• 3.2.2 DefaultCommunicationTimeouts [当前]
• 3.2.3 IChannel和ChannelBase
• 3.2.4 消息交换模式
• 3.2.5 信道形状
• 3.2.6 会话信道
• 3.2.7 实例演示:自定义信道
• 3.3.1 IChannelListener与ChannelListenerBase
• 3.3.2 信道栈的创建/使用模式
• 3.3.3 实例演示:自定义信道监听器
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •