Я использую класс Database из webmatrix в службе Windows.(И отладка в winform вызывает ту же ошибку)
Я получаю ошибку (после некоторого запуска):
Истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что все пулы соединений использовались и был достигнут максимальный размер пула.
Это необходимо решить с помощью операторов, чтобы убедиться, что все соединения закрыты.( как описано в этом хорошем ответе ) Но я недавно начал использовать также класс базы данных WebMatrix, и он, похоже, не закрывает соединения, которые я открываю с ним.
Вопрос: Как закрыть соединения, созданные с помощью класса Database из WebMatrix?
Используя этот код:
Public Shared Function GetProperty(pid As Integer, propertyName As String) As String
Dim db = Database.Open("SSEConnectionString")
Dim item = db.QuerySingle("select PropertyValue from eConfiguration where PID=@0 and PropertyName=@1", pid, propertyName)
Dim retVal = item.PropertyValue
db.Connection.Close()
db.Close()
Return retVal
End Function
Каждый раз, когда я запускаю этот код, я получаю новую запись в моем sys.sysprocesses таблица (и из того, что я выяснил, это означает, что новое соединение создается и поддерживается)
Моя строка подключения выглядит следующим образом:
<add name="SSEConnectionString" connectionString="Data
Источник = 123.45.67.890; Исходный каталог = SSE; Идентификатор пользователя = +++; Пароль = +++; Время ожидания соединения = 5; Имя приложения = SSE_Service "providerName =" System.Data.SqlClient "/>
Есть идеи, что я делаю не так?
Редактировать: Задал второй вопрос относительно таблицы sysprocesses - не уверен, поможет ли это в отладке
Спасибо за любую помощь
Edit2: Arghhhhh .... Я только что нашелчто было причиной ошибки - и это касается только меня.Я забыл закрыть соединение.: - (
Ларси