У меня есть веб-сервис, который вызывается до 10 клиентов. Веб-сервис состоит из 7 различных страниц asmx и имеет около 100-200 функций на каждой странице.
Все эти функции работают с базой данных MSSQL2005 или MS SQL2000. В некоторые периоды дня это большой трафик от клиентов, и кажется, что у меня заканчиваются соединения на sql-сервере, что приводит к остановке всех клиентов.
В каждой функции я открываю соединение, делаю вещи, а затем закрываю соединение, иногда с транзакциями, иногда без.
На сервере я вижу, что он создает много соединений, я не знаю, почему они не исчезают, но остаются там даже после того, как функция выполнена и завершена. Итак, я могу сказать, что мои 10 клиентов время от времени создают более 80 соединений. Иногда некоторые из них уходят, иногда они остаются там через несколько часов после использования. Там происходит какое-то объединение?
Вопрос 1:
Есть ли другой способ обработки соединений, которые я должен использовать, например, одно глобальное соединение для веб-службы или каким-либо другим способом?
Вопрос 2:
Если нормально обрабатывать соединения для каждой функции, то почему он не закрывает соединение на сервере, делая список открытых соединений все больше и больше, пока я не выйду из ошибки соединений?
Этот вопрос относится к другому моему вопросу, но не к нему: Странная проблема SQL2005. «SqlConnection не поддерживает параллельные транзакции»
Теперь я сужу его до ошибки «Нет соединения».