zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    搜索1011
    搜索1008(二分)
    贪心算法专题总结
    贪心算法1002
    c++笔记
    贪心算法1017
    贪心算法1008
    贪心算法1013
    Ubuntu中 sudo update与sudo upgrade的作用及区别
    requirejs 扩展,支持脚本资源预加载
  • 原文地址:https://www.cnblogs.com/wang_yb/p/1752890.html
Copyright © 2011-2022 走看看