2012-04-19 10 views
5

In WCF, was ist der Unterschied zwischen der Bindung Einstellung MaxConnections und der ServiceBehaviors serviceThrottling Einstellungen (maxConcurrentCalls, maxConcurrentInstances, maxConcurrentSessions)?WCF serviceBehaviors vs Bindung Einstellungen

Ich versuche, meine WCF-Service-Setup zu bekommen, und ich bin nicht genau sicher, wie diese zusammenarbeiten, um Verbindungen zu begrenzen.

Antwort

3

Zwei Dinge sind wichtig zu beachten:

  1. das serviceThrottling Verhalten ist ein service-/serverseitige Einstellung, die festlegt, wie viele gleichzeitige Anrufe, Instanzen und Sitzungen, die von dem Server unterstützt werden. Dies ist unabhängig von einem Bindungs- oder Service-Endpunkt - es ist eine service-weite Einstellung. Dadurch können Sie optimieren, wie viele gleichzeitige Anfragen (und/oder Sitzungen) ein bestimmter Dienst verarbeiten kann - das hängt von Faktoren wie Serverleistung, Arbeitsspeicher, CPU und vielen anderen Faktoren ab. Diese Werte sind ziemlich niedrig standardmäßig gehalten, um zu verhindern Servern vor einer „überlastet“ und somit nicht mehr reagiert durch große Überschwemmungen von Anfragen gemacht (irrtümlich oder vorsätzlich)

  2. die maxConnections Einstellung auf die Bindung ist spezifisch für die netTcpBinding (und es ist "Cousins", wie die netNamedPipe und verschiedene Azure-orientierte net***Relay Bindungen) und hat mit Verbindungspooling zu tun. Ähnlich wie ADO.NET-Datenbankverbindungen gepoolt werden, können TCP/IP-Verbindungen zum Server gebündelt und wiederverwendet werden, um den Aufwand für das Zerstören und erneute Erstellen von Verbindungen zu reduzieren. Dies ist hauptsächlich eine clientseitige Einstellung (obwohl sie auch Auswirkungen auf die Serverseite hat) und wiederum: sie ist spezifisch für die netTcpBinding (und Cousins; alle basieren auf TCP/IP) und existiert für keine der anderen Bindungen.

    Siehe: More details on MaxConnections für mehr, große eingehende Einblicke in die Ins und Outs dieser Einstellung.

+0

Können Sie die serverseitigen Effekte der MaxConnections-Einstellung erweitern? –