У меня служба WCF, развернутая в консольном приложении с включенной BasicHTTPBinding и SSL. Также установлен следующий атрибут:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Я также установил режим регулирования на
<serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647"
maxConcurrentInstances="2147483647" />
С другой стороны, я создал тестового клиента (для нагрузочного теста), который запускает несколько клиентов одновременно (несколько потоков) и выполняет транзакции на сервере. Все выглядит нормально, но на сервере загрузка ЦП не увеличивается, поэтому я добавил некоторые записи для просмотра количества одновременных вызовов на сервер и обнаружил, что он никогда не превышал 6.
Я просматривал код регистрации счетчика производительности более двух раз, и он мне кажется вполне подходящим.
Итак, я хочу спросить, в чем проблема в этой ситуации? Я еще не указал какой-либо ContextMode или ConcurrencyMode.
После этой публикации я заметил, что всякий раз, когда я запускаю другой Intance of Test Client, мой счетчик одновременных вызовов сервера увеличивается до 2, например, если я запускаю только 1 экземпляр, максимальное количество одновременных вызовов Rcvd будет равно 2, и если есть два экземпляра с одинаковым значением идет до 4 и так далее. Есть ли ограничение на количество вызовов WCF от одного процесса?
******** Добавлено 17 марта ********
Сегодня я провел еще один тест с одним тестовым клиентом (с 50 одновременными пользователями) на той же машине, на которой работает сервер. На этот раз я получаю точный результат, который я хотел показать (т.е. максимальное количество одновременных вызовов Rcvd по серверу = 50).
Но мне нужно сделать то же самое и на других машинах. Кто-нибудь может мне помочь в этом?