2011-09-06 12 views
5

Mamy usługę WC.tcp WCF w miejscu o wysokim natężeniu ruchu. http://www.artedelcorpo.com/Limity połączeń WCF

Działa bardzo dobrze przez pewien czas, a następnie zatrzymuje się i zwraca błąd limitu czasu. Po ponownym uruchomieniu usług IIS uruchamia się ponownie.

Dlaczego? Czy istnieje ograniczenie połączeń?

+1

Uruchamianie śledzenia WCF może zapewnić pewien wgląd. –

+1

Błąd: "System.Net.Sockets.SocketException (0x80004005): Operacja We/Wy została przerwana z powodu wyjścia wątku lub żądania aplikacji" – user758977

Odpowiedz

9

Istnieje domyślne ustawienie 10 połączeń dla wiązania NetTcp. Możesz zwiększyć to w sekcji <binding> swojej konfiguracji. To samo dotyczy limitów czasu - domyślnie jest to 1 minuta, ale możesz także dostosować czas zamknięcia, limit czasu oczekiwania, limit czasu oczekiwania i czas oczekiwania.

<system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
      <binding name="MyNetTcpBinding" closeTimeout="00:05:00" 
        openTimeout="00:05:00" receiveTimeout="00:05:00" 
        sendTimeout="00:05:00" maxConnections="100" /> 
     <netTcpBinding> 
    </bindings> 
</system.serviceModel> 

Powyższe próbki będzie ustawić limity czasu 5 minut i maksymalnie połączeń 100.

Patrz <netTcpBinding> więcej szczegółów/informacje.

+0

Dzięki za odpowiedź. Ustawiłem limit czasu na 10 minut i 1000 połączeń. Mamy około 7000 unikalnych gości dziennie. – user758977

5

Zwiększenie limitu czasu sieci zapewnia czas na przetworzenie żądania. Może to pomóc przetrwać krótki przypływ dużego ruchu, ale nie zmienia to przepustowości twojego systemu.

Jeśli twój sprzęt nadal ma trochę miejsca pod względem pamięci i procesora, gdy te problemy wystąpią, powinieneś spojrzeć na zmianę przepustowości równoczesnej. Umożliwi to równoległe przetwarzanie większej liczby żądań. Model default throttle values in .NET 3.5 jest dość konserwatywny i może to być szybka naprawa (w zależności od architektury usługi).

Oto kilka dobrych przykładów konfiguracji konfiguracji WCF service throttles.

Jeśli twój sprzęt jest wyczerpany, a wciąż masz limity czasu, prawdopodobnie upłynie czas, aby zakodować usługę i dodać kolejny węzeł.

Powiązane problemy