检测WCF服务是否受限制

时间:2012-11-12 19:56:43

标签: wcf throttling

有没有办法在服务器端检测我的maxConcurrentSessions或maxConcurrentCalls是否已用完,即对我的服务的调用是否已排队?如果可以,我想记录下来。或者,IIS是否提供任何帮助?

2 个答案:

答案 0 :(得分:0)

要检测当前的并发会话,您可以尝试向ServiceClass添加静态int字段:

public class MyService : IMyService, IDisposable
{
    // Service Instance Count
    private static int _NumberOfInstances;

    public MyService () 
    {
        MyService._NumberOfInstances++;
    }

    public void Method1()
    {
        // ...
    }

    public void Dispose()
    {
        MyService._NumberOfInstances--;
    }
}

根据定义: ConcurrentInstances是在给定时间分配的服务实例的数量。当它是PerCall服务时,此值与并发调用的数量相匹配。对于PerSession服务,此值等于活动会话实例的数量。

所以你可以检查你是否会超过你的最大值。

答案 1 :(得分:0)

当你提出问题时,

WCF performance counters可用。