有没有办法在服务器端检测我的 maxConcurrentSessions 或 maxConcurrentCalls 是否已用尽,即对我的服务的调用已排队?如果可以的话,我想记录一下。或者,IIS 是否提供任何帮助?
问问题
485 次
2 回答
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 服务,此值等于活动会话实例的数量。
所以你可以检查你是否要超过你的最大值。
于 2012-11-12T20:58:40.390 回答
0
当您提出问题时,WCF 性能计数器可用。
于 2015-06-24T04:49:17.660 回答