2016-06-22 5 views
0

Ich habe einen WCF laufenden Dienst mit Drosselungswert alsWas sind die empfohlenen Werte und die Bedeutung der WCF-Drosselungszähler?

MaxConcurrentCalls = 32
MaxConcurrentSessions = 20
MaxConcurrentInstances = 52

So wie ich die Zähler zu verstehen ist, dass gleichzeitige Anrufe, die Anzahl der Anfragen, regieren Wird gerade ausgeführt, steuern gleichzeitige Sitzungen die Anzahl der Anforderungen in der Warteschlange und gleichzeitige Instanzen ist die Summe aus beiden.

Wir haben ein Szenario, in dem der Prozentsatz der gleichzeitigen Anrufe geht> 100, aber den Prozentsatz der gleichzeitigen Sitzung ist immer 0.

Ich bin zutiefst verwirrt über die Bedeutung dieser Zähler und die Werte, die ich immer bin.

Jede Hilfe wird

geschätzt
+0

Ist Ihr Service sitzungs aktiviert? Wenn nicht, macht 0 Sinn. Wie lautet die Anzahl für gleichzeitige Instanzen? Wenn es sich um gleichzeitige Anrufe handelt, ist 0 wiederum sinnvoll. – Tim

Antwort

0

Drei Punkte zu überprüfen, um eine Sitzung haben

1 Verwenden Sie eine Sitzung aktiviert Bindung

Zum Beispiel überprüfen, ob Sie nicht sind mit basicHttpBinding zum Beispiel. Diese Bindung unterstützt keine Sitzungen.

Bevorzugen wsHttpBinding oder netTcpBinding oder namedPipeBinding

2 Aktivieren Sitzung auf der Service-Implementierung

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 
public class BillingService { ... } 

3 Zulassen oder erfordert die Sitzung auf der Service-Schnittstelle

[ServiceContract(SessionMode=SessionMode.Allowed)] 
public interface IBillingService { … } 

können Sie überprüfen, ob es eine aktuelle Sitzung ist:

1 Server Seite

string sessionId = OperationContext.Current.SessionId; 

2 Client-Seite

string sessionId = proxy.InnerChannel.SessionId; 

Grüße

Verwandte Themen