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