5 подключений, вероятно, исходят от сервера - вы можете определить количество максимальных открытых сеансов, максимальное количество одновременных вызовов и максимальное количество экземпляров сервера с помощью поведения серверов serviceThrottling
.
В то же время, если это позволит вам увеличить количество одновременно открытых сессий, я все равно рекомендовал бы правильно убирать за собой - даже если в старые времена это не требовалось .....
Я бы предложил включить использование вашего клиентского прокси в оператор using
следующим образом:
using(ClientProxy proxy = new ClientProxy())
{
// go ahead, call your service methods
}
Обновление: , как правильно заметил комментатор, у него есть свои проблемы, так как клиент может выбросить исключение при удалении. Так что это может не очень хорошо работать - или вам нужно обернуть try...catch
вокруг него для обработки тех случаев, когда закрытие клиентского прокси вызывает проблему.
См. Как избежать проблем с помощью оператора Using
Таким образом, клиентский прокси автоматически закрывается и удаляется, когда заканчивается область использования блока, и ваш канал от клиента к серверу освобождается, и сервер готов принять другой вызов от другого клиента.
Кроме того, с помощью wsHttpContextBinding вы должны проверить, действительно ли вам нужны сеансы, которые включены по умолчанию - рекомендуется использовать экземпляр для каждого вызова на сервере, например, каждый вызывающий объект создает новый объект сервера. Сессии привносят целый ряд новых проблем и потенциальных ловушек, поэтому я постараюсь использовать их только тогда, когда мне действительно это нужно (и получаю от этого выгоду) - иначе отключаю сессии.
Марк