MaxConcurrentCalls和MaxConcurrentSessions属性的区别

本文关键字:区别 属性 MaxConcurrentSessions MaxConcurrentCalls | 更新日期: 2023-09-27 18:11:01

看完http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentsessions.aspx

http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentcalls.aspx

我的结论是:

MaxConcurrentSessions是每个客户端排队会话的数量(默认为10)MaxConcurrentCalls是服务上的活动连接数(默认为16),即所有客户端在任何时候访问服务,这意味着如果2个客户端每个调用10个,4个将不得不在队列中等待处理。

问题:

  1. 我的结论正确吗?
  2. MaxConnections如何与这些交互?
  3. MaxConnections优先于MaxConcurrentX设置吗?

(注意:我使用的是。net 3.5)

MaxConcurrentCalls和MaxConcurrentSessions属性的区别

MaxConcurrentCalls与当前正在执行的服务调用的数量有关。

MaxConnections与服务上打开的连接总数有关,而不管服务是否正在为该连接执行任何操作。

例如,如果客户端打开到服务的连接,调用一个方法,并且正在等待该方法返回,它将计算在MaxConcurrentCalls中。一旦服务返回对客户端方法调用的响应,它将不计入MaxConcurrentCalls…即使您没有关闭客户端代理。假设您没有关闭客户端代理,连接将计入服务上的MaxConnections,因为您仍然打开连接,但它当前没有在服务上执行任何操作,因此它不会计入MaxConcurrentCalls