【问题标题】:What are the recommended values and meaning of the WCF Throttling counters?WCF 限制计数器的推荐值和含义是什么?
【发布时间】:2016-10-23 18:52:50
【问题描述】:

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

MaxConcurrentCalls = 32
MaxConcurrentSessions = 20
MaxConcurrentInstances = 52

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

我们有一个场景,并发调用的百分比 > 100,但并发会话的百分比始终为 0。

我对这些计数器的含义和我得到的值深感困惑。

任何帮助,不胜感激

【问题讨论】:

  • 您的服务会话启用了吗?如果不是,0 是有道理的。并发实例的数量是多少?如果它与并发调用相同,那么再次,0 是有意义的。

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


【解决方案1】:

三点检查才能进行会话

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;

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2013-05-08
    相关资源
    最近更新 更多