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