WCF限制计数器的建议值和含义是什么?

时间:2016-06-22 02:53:06

标签: asp.net web-services wcf performancecounter throttling

我有一个WCF运行服务,其限制值为

MaxConcurrentCalls = 32
MaxConcurrentSessions = 20
MaxConcurrentInstances = 52

我理解计数器的方式是并发调用控制当前正在执行的请求数,并发会话控制等待队列中的请求数,并发实例是两者的总和。

我们有一个场景,其中并发呼叫的百分比是> 100但并发会话的百分比始终为0.

我对这些计数器的含义以及我得到的价值感到非常困惑。

任何帮助,表示赞赏

1 个答案:

答案 0 :(得分:0)

要检查以获得会话的三个要点

1使用会话启用绑定

例如,检查您是否使用basicHttpBinding。该绑定不支持会话。

首选wsHttpBindingnetTcpBindingnamedPipeBinding

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;

此致