WCF流量控制

1.配置文件中对流量的配置

WCF流量控制

从上图可知,通过配置<serviceBehavior>下的<serviceThrottling>属性即可配置WCF服务的访问流量。

上图中将maxConcurrentCallsmaxConcurrentInstancesmaxConcurrentSessions均配置为“1”,则对客户端的请求只能线性处理,每次只处理一个请求,其他的请求自动放在队列中等待。

 

2.验证流量配置

将配置文件的maxConcurrentCalls,maxConcurrentInstances及maxConcurrentSessions均配置为“1”,然后双击打开附件中下载的FlowControl文件夹下的FlowControl.sln,直接在VS2008中运行例子。

 

在测试的站点上点击MultiAccess按钮(如下图所示),将启动5个线程同时访问WCF服务(WCF服务的功能只是暂停5秒),当访问结束后在~FlowControl\WebClient\log文件夹下生成5个线程的log文件,发现5个线程访问完服务共用时25秒。(没有并行访问)

WCF流量控制

若将配置文件的maxConcurrentCallsmaxConcurrentInstancesmaxConcurrentSessions的值调大,再次测试,将会发现5个线程访问完服务的用时小于25秒,具体多少取决于maxConcurrentCallsmaxConcurrentInstancesmaxConcurrentSessions的值的设置。

 

3.WCF限制上传文件的大小

3.1服务端代码

WCF流量控制

 

 

 

由上图可知,功能仅仅就是将fileData写入路径为path的文件中。

 

3.2客户端代码

画面如下:

WCF流量控制先点击参照按钮选择文件,再点击Upload按钮上传文件。

 

上传代码如下:

WCF流量控制由上图可知,上传文件的大小取决于length的值,我们也是通过在配置文件中设置maxArrayLength的大小来控制上传文件的大小的。配置如下:

WCF流量控制通过Debug上面的代码,找到一个length大于16384的文件,将其上传会发现站点抛出异常,而length小于16384的文件则可以正常上传。

 

实例代码下载:FlowControl.zip




本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/archive/2010/06/06/1752890.html,如需转载请自行联系原作者

上一篇:软件定义的BYOD安全防护体系


下一篇:KUBERNETES04_Service服务ClusterIP、NodePort方式、Ingress域名访问、路径重写、限流操作(五)