阅读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 是每个客户端排队的 session 数(默认为10)
MaxConcurrentCalls 是服务上的事件连接数(默认为16),即所有客户端一次都访问该服务,这意味着如果2个客户端分别进行10个调用,则4个必须在队列中等待处理。

问题:

  • 我的结论正确吗?
  • MaxConnections 如何与这些交互?
  • MaxConnections 是否优先于 MaxConcurrentX 设置?

  • (注意:我正在使用.NET 3.5)

    最佳答案

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

    MaxConnections 与服务上打开的连接总数有关,无论服务是否对该连接执行任何操作。

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

    关于c# - wcf-MaxConcurrentCalls和MaxConcurrentSessions属性之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7726824/

    10-12 17:19