2012-04-19 10 views
5

W WCF, jaka jest różnica między ustawieniem wiązania maxConnections i ServiceBehaviors serviceThrottling settings (maxConcurrentCalls, maxConcurrentInstances, maxConcurrentSessions)?Usługa WCFBehaviors vs binding settings

Próbuję uzyskać moją konfigurację usługi WCF i nie jestem do końca pewien, w jaki sposób współpracują ze sobą w celu ograniczenia połączeń.

Odpowiedz

3

Dwie rzeczy są ważne do rozważenia:

  1. zachowanie serviceThrottling jest Service-/server-side ustawienie, które określa, jak wiele jednoczesnych połączeń, instancje i sesje są obsługiwane przez serwer. Jest to niezależne od jakiegokolwiek punktu końcowego wiązania lub usługi - jest to ustawienie obejmujące cały serwis. Pozwala to na dostosowanie liczby równoczesnych żądań (i/lub sesji) obsługiwanych przez określoną usługę - zależy to od rzeczy takich jak "moc" serwera, pamięć RAM, procesor i wiele innych czynników. Wartości te przechowywane są dość niskie domyślnie, aby uniknąć serwerów z bycia „przeładowany”, a więc renderowane odpowiadać dużych powodzi wniosków (błędnie lub złośliwie)

  2. ustawienie maxConnections na wiązanie jest specyficzne dla netTcpBinding (i to "kuzyni", jak netNamedPipe i różne wiązania zorientowane na Azure net***Relay) i ma do czynienia z łączeniem połączeń. Podobnie jak połączenia bazy danych ADO.NET są łączone, połączenia TCP/IP z serwerem mogą być łączone i ponownie wykorzystywane w celu zmniejszenia obciążenia związanego z koniecznością ich niszczenia i ponownego tworzenia. Jest to głównie ustawienie po stronie klienta (chociaż ma również wpływ na serwer) i znowu: jest specyficzne dla netTcpBinding (i kuzynów, wszystko oparte na TCP/IP) i nie istnieje dla żadnego innego wiązania.

    Zobacz: More details on MaxConnections, aby uzyskać więcej doskonałych wglądów w szczegóły tego ustawienia.

+0

Czy można rozszerzyć na efekty po stronie serwera ustawienia MaxConnections? –