Как увеличить Макс соединения WCF NET TCP - PullRequest
0 голосов
/ 12 мая 2019

Я устанавливаю TCP-сервер WCF NET.Пока что у меня все хорошо с несколькими связями.Но поскольку я решил провести стресс-тестирование, я обнаружил некоторые проблемы.С клиентом, запускающим потоки, я получаю 128 успешных подключений, но на 129-м подключениях я получаю:

исключение слишком занятых серверов.

Я уже изменил maxConnectionsдо 1000 на привязке.Я уже изменил значения maxConcurrentCalls, maxConcurrentSessions, maxConcurrentInstances на 5000 (только для тестирования) в serviceThrottling.

Мое связывание:

<binding name="netTcpClientsBindingConfig" transferMode="Buffered" maxReceivedMessageSize="50242880"
    closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:05:00"
    sendTimeout="00:05:00" maxConnections="1000">

Моя конфигурация поведения:

<behavior name="mexClientsBehavior">
    <serviceThrottling
        maxConcurrentCalls     = "5000"
        maxConcurrentSessions  = "5000"
        maxConcurrentInstances = "5000"
    />

Я ожидаю принять не менее 1000 соединений.

Здесь есть одно ограничение (я верю в это! Пожалуйста, кто-нибудь может исправить меня, если есть другое решение):

Мне нужно сохранитьсоединение ОТКРЫТО, потому что мой сервер может связаться с клиентом через обратные вызовы, чтобы отправить информацию, о которой клиенты должны знать как можно скорее.Если соединение закрыто, я не могу повторно открыть на стороне сервера, или я могу?Это было бы решением.

1 Ответ

0 голосов
/ 13 мая 2019

Моя проблема заключалась в следующем: я использовал app.config для создания службы WCF TCP.

Я создал все заново, но программно!Теперь у моего программного обеспечения есть максимальное количество соединений и все необходимые настройки Throttling.Кроме того, теперь я могу создавать конечные точки динамически!Это способ развертывания служб (на основе служб Windows) на нескольких компьютерах для балансировки нагрузки.

Я использую VS 2017 15.9.11 Надеюсь, что любой другой, кто пройдет через этот король проблемы, получит этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...