我已经部署在basicHttpBinding的和SSL控制台应用程序启用了WCF服务。以下属性设置,以及:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

我还设置节流行为

<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"
        maxConcurrentInstances="2147483647" />

在其同时启动多个客户端(多个线程)并在服务器上执行交易我已经创建了一个测试客户端(用于负载测试)另一方面。一切似乎都不错,但在服务器上的CPU利用率不增加,所以我加了一些日志,查看并发呼叫服务器的数量,发现它从来没有超过6。

我已经查阅了性能计数器日志代码的两倍多,似乎没什么问题。

所以我要问哪里是在这种情况下,什么问题?我还没有指定任何种类ContextMode或ConcurrencyMode的爱好。

这帖子以后,我注意到,每当我开始测试客户端的另一个Intance我的并发服务器调用计数器增加至2一样,如果我运行仅1个实例的最大并发RCVD呼叫将被2,如果有两个实例相同的值进入4等。有WCF数的任何限制从曾经进程调用?

********添加于17三月********

今天我跑在其上运行服务器的同一台机器上的一个测试客户端(50个并发用户)的另一测试。这一次,我得到确切的结果是什么,我想它显示(按服务器= 50 RCVD即最大并发调用)。

不过,我需要做的是同样的他人的机器也是如此。任何人可以帮助我在这?

有帮助吗?

解决方案 2

我发现了一个解决方案:有上ServicePointManager连接限制这是引起此问题。为了解除这个限制,你只需要设置

System.Net.ServicePointManager.DefaultConnectionLimit = X;

,其中默认限制为2。

其他提示

或者在客户端使用此配置。

<system.net>
    <connectionManagement>
      <add maxconnection = "200" address ="*" />
    </connectionManagement>
  </system.net>

下面200是来自客户端的极限

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top