Сервисная регулировка WCF

Мне развернули сервис WCF в консольном приложении с BasicHTTPBinding, и SSL включил. Следующий атрибут установлен также:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

Я также установил поведение регулировки на

<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"
        maxConcurrentInstances="2147483647" />

С другой стороны, я создал тестовый клиент (для нагрузочного теста), который инициирует несколько клиентов одновременно (несколько потоков) и выполняет транзакции на сервере. Все кажется прекрасным, но на сервере загрузка ЦП не увеличивается так, я добавил некоторый вход для просмотра количества параллельных вызовов к серверу и нашел, что это никогда не переходило 6.

Я рассмотрел код входа счетчика производительности более двух раз, и это кажется прекрасным мне.

Таким образом, я хочу спросить, где проблема в этой ситуации? Я еще не указал вида ContextMode или ConcurrencyMode.

После этого Сообщения я заметил, что каждый раз, когда я запускаю другой Intance Тестового Клиента, мой параллельный счетчик Вызовов Сервера увеличивается до 2 как то, если я работаю, только 1 инстанцирует максимальные Параллельные Вызовы Rcvd, будет 2 и если существует два, инстанцируют то же значение, переходит в 4 и так далее. Есть ли предел Количества Вызовов WCF от однажды процесса?

******** Добавленный 17 марта ********

Сегодня я запустил другой тест с одним тестовым клиентом (с 50 параллельными пользователями) на той же машине, на которой работает сервер. На этот раз я получаю точный результат, что я хотел, чтобы это показало (т.е. Максимальные параллельные вызовы Rcvd Сервером = 50).

Но я должен сделать это то же на машинах других также. Кто-либо может помочь мне на этом?

18
задан thesquaregroot 6 October 2016 в 03:28
поделиться

1 ответ

Я нашел решение: в ServicePointManager есть ограничение на соединение, которое вызывало эту проблему. Чтобы убрать этот лимит, нужно просто установить

System.Net.ServicePointManager.DefaultConnectionLimit = X;

где лимит по умолчанию равен 2.

18
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: