1

maxConcurrentSessions または maxConcurrentCalls が使い果たされた場合、つまりサービスへの呼び出しがキューに入れられた場合、サーバー側で検出する方法はありますか? できればログに残したい。あるいは、IIS は何か助けを提供していますか?

4

2 に答える 2

0

現在の同時セッションを検出するには、静的intフィールドをServiceClassに追加してみてください。

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 に答える