我在控制台应用程序中部署了WCF服务,并启用了BasicHTTPBinding和SSL.还设置了以下属性:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Run Code Online (Sandbox Code Playgroud)
我还设置了限制行为
<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"
maxConcurrentInstances="2147483647" />
Run Code Online (Sandbox Code Playgroud)
另一方面,我创建了一个测试客户端(用于负载测试),它同时启动多个客户端(多个线程)并在服务器上执行事务.一切似乎都很好,但在服务器上CPU利用率没有增加所以我添加了一些日志记录来查看服务器的并发调用数,发现它从未超过6.
我已经查看了两次以上的性能计数器记录代码,对我来说似乎很好.
所以我想问一下这种情况下的问题在哪里?我还没有指定任何种类的ContextMode或ConcurrencyMode.
这个帖子之后,我注意到,每当我开始测试客户端的另一个Intance我的并发服务器调用计数器增加至2一样,如果我运行仅1个实例的最大并发RCVD呼叫将被2,如果有两个实例相同的值变为4等等.一次处理的WCF呼叫数量是否有限制?
********3月17日添加********
今天我在运行服务器的同一台机器上运行了一个测试客户端(有50个并发用户)的另一个测试.这次我得到了我想要显示的确切结果(即服务器的最大并发呼叫数Rcvd = 50).
但我需要在其他机器上也这样做.有人可以帮我这个吗?
在.NET 4.5中使用WebClient,HttpWebRequest和HttpClient类可以发送多少并发/并行请求是否有限制?或者,如果对Web API或服务器没有限制,您是否可以发送无限制的并行请求?对不起,如果问题太广泛,请纠正我,以便缩小范围.