Моя новая страница приложения получает ошибку тайм-аута каждый час или около того после получения трафика на странице, и под трафиком я подразумеваю, что пользователи подают 5-10 приложений.Как мне найти причину связывания соединений?
Это было проблемой в прошлом, поэтому всякий раз, когда я использую объект чтения данных sql, я обязательно выполняю инструкцию «Using».Я также позаботился о том, чтобы поток не был прерван до того, как устройство чтения данных будет удалено.Я сомневаюсь, что мое использование читателей данных является проблемой, поэтому, возможно, это мой код, не связанный с запросом, который вызывает проблему, но я не могу понять, почему.
Я также использую несколько объектов sqldatasource для своих элементов управления выпадающего списка, и, насколько я знаю, это не будет источником моей проблемы.
См. Пример кода, чтобы узнать, как я использую свой sqlobjects.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Using drApp As SqlDataReader = LookupAppByID()
'some code
drApp.Close()
End Using
End Sub
Public Function LookupAppByID() As SqlDataReader
Dim Command As New SqlClient.SqlCommand
Command.Connection = GetDBConnection()
Command.CommandType = CommandType.Text
Command.CommandText = "select statement"
Return Command.ExecuteReader(CommandBehavior.CloseConnection)
End Function
Public Function UpdateAppStatus() As Integer
UpdateAppStatus = 0
Using Command As New SqlClient.SqlCommand("update statement", GetDBConnection())
UpdateAppStatus = Command.ExecuteNonQuery()
Command.Connection.Close()
Command.Connection.Dispose()
Command.Dispose()
End Using
End Function
Public Function GetDBConnection() As SqlClient.SqlConnection
Dim connection As New SqlClient.SqlConnection
connection.ConnectionString = "connection string"
connection.Open()
Return connection
End Function
Очевидно, я ожидаю, что он пойдет без помех, но когда пользователи начинают нажимать на страницу, появляется такая ошибка: истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула.
Есть ли проблема с моим кодом?Как я могу определить причину этой проблемы?