WCF流量控制

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

image

从上图可知,通过配置<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秒。(没有并行访问)

image

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

 

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

3.1服务端代码

clip_image002[6]

 

 

 

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

 

3.2客户端代码

画面如下:

image 先点击参照按钮选择文件,再点击Upload按钮上传文件。

 

上传代码如下:

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

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

 

实例代码下载:FlowControl.zip

posted @ 2010-06-06 23:09  wang_yb  阅读(1784)  评论(0编辑  收藏  举报