阅读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个必须在队列中等待处理。
问题:
(注意:我正在使用.NET 3.5)
最佳答案
MaxConcurrentCalls 与当前正在执行的服务上的调用数有关。
MaxConnections 与服务上打开的连接总数有关,无论服务是否对该连接执行任何操作。
例如,如果客户端打开与服务的连接,调用一个方法,然后等待该方法返回,则它将计入 MaxConcurrentCalls 。服务一旦返回对客户端方法调用的响应,即使您没有关闭客户端代理,它也不会计入 MaxConcurrentCalls ……假设您没有关闭客户端代理,由于您仍然打开了连接,因此该连接将计入服务上的 MaxConnections ,但该服务当前未在该服务上执行任何操作,因此不会计入 MaxConcurrentCalls 。
关于c# - wcf-MaxConcurrentCalls和MaxConcurrentSessions属性之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7726824/