WCF服务节流
我有部署在basicHttpBinding的和SSL控制台应用程序的WCF服务启用。以下属性设置,以及: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即最大并发调用)。
但我需要做的是同样的他人的机器也是如此。有人可以帮助我吗?
我发现了一个解决方案:在ServicePointManager上存在导致此问题的连接限制。为了解除这个限制,你只需要设置
System.Net.ServicePointManager.DefaultConnectionLimit = X;
在默认限制为2
或者在客户端使用此配置。
<system.net>
<connectionManagement>
<add maxconnection = "200" address ="*" />
</connectionManagement>
</system.net>
这里200是从客户端
它在这里描述http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx,也许你需要知道这个http://support.microsoft.com/kb/969189 – 2011-11-30 17:50:26
MSDN:[
我增加了maxconnection =“100”address =“*”但没有运气获得WCF超时错误 – 2016-10-13 08:35:13
从@JuliaS极限:哪里此行去了?这是客户端还是WCF服务设置? – 2011-11-29 08:25:38
对于迟到的回复感到抱歉:这适用于任何.net应用程序,它可以对任何服务器进行多个并发出站连接。 – 2012-10-10 03:12:01