Udało mi się zduplikować ten sam problem przekroczenia limitu rozmiaru bufora za pomocą ServiceStack. Kod do wykonania testów warunków skrajnych jest tutaj - uruchom 20 instancji aplikacji przez co najmniej 20 minut. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3
Pierwszym błędem, który możesz zobaczyć, jest „Nie można połączyć się z instancją redis” opisanym przez Redis nie może połączyć się przy zajętym obciążeniu, ale jeśli rozwiniesz wyjątek wewnętrzny, zobaczysz „Nie można wykonać operacji na gnieździe, ponieważ systemowi brakowało wystarczającego bufora miejsca lub kolejka była pełna"
Mój problem wystąpił w Windows 7, ale nie w Windows Server 2008 rc. Więc zaczynam się zastanawiać, czy to był problem z systemem operacyjnym. Po wysłaniu e-maila do Demisa na ServiceStack stwierdzono, że ServiceStack prawidłowo zamyka gniazda. Patrząc na system operacyjny, problem został rozwiązany poprzez ustawienie TcpTimeWaitDelay i MaxUserPort.
Więcej referencji. TcpTimeWaitDelay do 45 sekund
i MaxUserPorthttp://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html
Dostosowałem zakres portów do 1025-64511