У меня возникла та же проблема, и после выполнения отладки я увидел, что создаю новый экземпляр DB Entity для каждого действия, а создание нового экземпляра Db Entity означает открытие нового соединения с db.
Ниже приведен код:
Private tmpConnection As New DbModel.DbEntities
поэтому, вызывая переменную снова и снова, она создает новый экземпляр DbEntites и открывает новое соединение с БД.
поэтому я пишу небольшую функцию для этого, и это решило мою проблему. Теперь ошибки больше нет.
Private tmpConnection As DbModel.DbEntities
Public Function dbCon() As DbModel.DbEntities
If tmpConnection IsNot Nothing Then
If tmpConnection.Connection.State = ConnectionState.Closed Then
Try
tmpConnection.Connection.Open()
Return tmpConnection
Catch ex As Exception
My.Response.Redirect("dberror.aspx")
End Try
Else
Return tmpConnection
End If
Else
tmpConnection = New DbModel.DbEntities
Try
tmpConnection.Connection.Open()
Return tmpConnection
Catch ex As Exception
My.Response.Redirect("dberror.aspx")
End Try
End If
Return Nothing
End Function
и, наконец, в строке подключения, пожалуйста, добавьте "Connect Timeout = 30;"
это работает так идеально для меня