Уффф, последняя попытка понять этот глупый WCF.
Что я сделал сейчас:
создать клиента, который запускает 20 потоков, каждый поток отправляет запросы на обслуживание в цикле. Счетчик производительности на сервере утверждает, что только 2 экземпляра объекта службы создаются постоянно. Среднее время запроса составляет около 40 секунд (я начинаю измерять до вызова прокси и заканчиваю после возврата вызова).
изменить этот клиент, чтобы запустить 5 потоков и запустить 4 экземпляра этого клиента (для имитации поведения 20 потоков из предыдущего примера). Монитор производительности показывает, что 8 экземпляров объекта службы создаются постоянно. Среднее время запроса составляет 20 секунд.
Может кто-нибудь сказать мне, что происходит? Я думал, что есть проблема с сервером, что он не хочет обрабатывать больше запросов одновременно, но, очевидно, это клиент, который вызывает ажиотаж и не хочет отправлять больше запросов одновременно ... Возможно, есть какой-то параметр конфигурации, который ограничивает отправку клиентом более двух запросов одновременно ... (буфер, регулирование и т. д.)
Фабрика каналов создается в каждом потоке.