本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Binding.ReceiveTimeout 属性

 

发布日期: 2016年7月

获取或设置连接在撤消之前保持非活动状态的最大时间间隔,在此时间间隔内未接收任何应用程序消息。

命名空间:   System.ServiceModel.Channels
程序集:  System.ServiceModel(位于 System.ServiceModel.dll)

public TimeSpan ReceiveTimeout { get; set; }

属性值

Type: System.TimeSpan

一个 TimeSpan,指定在超时前应用程序接收消息的时间。 默认值为 10 分钟。

Exception Condition
ArgumentOutOfRangeException

值小于零或太大。

使用可靠会话时,必须同时满足两个不同的非活动计时器,才能使连接处于活动状态。 如果任一非活动计时器结束计时,则将断开连接。

  • 第一个非活动计时器为可靠会话计时器,称为 InactivityTimeout 如果在超时期限内没有收到任何应用程序消息或基础结构消息,此非活动计时器将激发。 基础结构消息是指为了通道堆栈中的协议之一(例如,保持活动状态或确认,而并非包含应用程序数据)而生成的消息。

  • 第二个非活动计时器为服务计时器,它使用绑定的 ReceiveTimeout 设置。 如果在超时期限内没有收到任何应用程序消息,此非活动计时器将激发。 例如,它可以指定服务器关闭会话所用的通道前,客户端向服务器发送至少一个消息所需的最长时间。 此行为确保了客户端不能无限期地占用服务器资源。

由于任一非活动计时器激发都会断开连接,因此单纯增大 InactivityTimeout(当其大于 ReceiveTimeout 时)不起任何作用。 这两个超时时间的默认值均为 10 分钟,因此在使用可靠会话时,必须同时增大这两个超时时间才会起作用。

如果对绑定或通道启用了事务流,执行操作所需的时间可能会比指定的超时时间长。 在这些情况下,将会因为超时过期而导致操作失败,事务也将随之中止。

当会话中,用于安全 ReceiveTimeout 的绑定上设置的值还用作的会话超时值。

通用 Windows 平台
自 8 起可用
.NET Framework
自 3.0 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
返回页首
显示: