我有一个WCF运行服务,其限制值为
MaxConcurrentCalls = 32
MaxConcurrentSessions = 20
MaxConcurrentInstances = 52
我理解计数器的方式是并发调用控制当前正在执行的请求数,并发会话控制等待队列中的请求数,并发实例是两者的总和。
我们有一个场景,其中并发呼叫的百分比是> 100但并发会话的百分比始终为0.
我对这些计数器的含义以及我得到的价值感到非常困惑。
任何帮助,表示赞赏
答案 0 :(得分:0)
要检查以获得会话的三个要点
1使用会话启用绑定
例如,检查您是否使用basicHttpBinding
。该绑定不支持会话。
首选wsHttpBinding
或netTcpBinding
或namedPipeBinding
2启用服务实施会话
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class BillingService { ... }
3允许或要求服务界面上的会话
[ServiceContract(SessionMode=SessionMode.Allowed)]
public interface IBillingService { … }
您可以检查是否有当前会话:
1服务器端
string sessionId = OperationContext.Current.SessionId;
2客户端
string sessionId = proxy.InnerChannel.SessionId;
此致