现在的位置: 首页 > 综合 > 正文

WCF 示例学习笔记006之遏制(01.02.01.05)

2012年09月16日 ⁄ 综合 ⁄ 共 5506字 ⁄ 字号 评论关闭

此示例通过设置ServiceThrottlingBehavior的属性来实现遏制控制。

为了容易在客户端看出效果,我们对每个服务方法定义了休眠时间。

如下为契约和服务类的代码:

Code

 

我们将服务的最大并发调用数限制为2,最大并发实例数限制为10,服务端的配置文件为:

Code

 

客户端程序的代码为:

Code

 

下面把客户端程序运行结果贴出来:

我们会发现在运行减法后,将有5秒左右的停顿。

在配置文件中,我们看到了serviceThrottling这个元素,下面我把这个元素的属性列出如下: 

属性 说明 默认值
maxConcurrentCalls 一个正整数值,指定对单个服务实例进行的并发调用的数量。 超出限制的调用会进行排队。 将此值设置为 0 与将其设置为 Int32.MaxValue 等效。 16
maxConcurrentInstances 一个正整数,指定并发服务实例的最大数量。 创建其他实例的请求会进行排队,并在限制范围内的槽可用时完成。 Int32.MaxValue
maxConcurrentSessions 一个正整数,指定与单个服务的并发连接的最大数量。 此服务将接受超出限制的连接,但是,只有处于限制范围之内的通道处于活动状态(会从此通道中读取消息)。 将此值设置为 0 与将其设置为 Int32.MaxValue 等效。 10

下载程序示例

抱歉!评论已关闭.