Buongiorno a tutti!
Ho ereditato in gestione un sito in asp.net. Da quando i gestori del server hanno cambiato la macchina, il sito mi dà errore sul pool di connessioni.
Questa è la classe per le connessioni:
Ho verificato che tutte le aperture della classe DBGest avessero il metodo DBchiudi, tranne nel caso in cui viene richiamato il metodo estrai, poichè la connessione viene aperta e chiusa nello metodo stesso.codice:Public Class DBgest Private _sql As String Private _contarighe As String Private cn As New SqlConnection() Public Property sql() As String Get Return _sql End Get Set(ByVal value As String) _sql = value End Set End Property Public Function apridati() As SqlDataReader Dim mytable As New DataTable Dim datiletti As SqlDataReader Dim cmd As New SqlCommand cn = New SqlConnection cn.ConnectionString = ConfigurationManager.ConnectionStrings("sirio8sql").ConnectionString cn.Open() cmd.CommandText = _sql cmd.CommandType = CommandType.Text cmd.Connection = cn datiletti = cmd.ExecuteReader(CommandBehavior.CloseConnection) Return datiletti End Function Public Function contarighe() As Integer Dim mytable As New DataTable Dim datiletti Dim cmd As New SqlCommand cn = New SqlConnection cn.ConnectionString = ConfigurationManager.ConnectionStrings("sirio8sql").ConnectionString cn.Open() cmd.CommandText = _sql cmd.CommandType = CommandType.Text cmd.Connection = cn datiletti = cmd.ExecuteReader(CommandBehavior.CloseConnection) mytable.Load(datiletti) Return mytable.Rows.Count End Function Public Function esegui() As Integer Dim nraffected As Integer Dim cmd As SqlCommand cn = New SqlConnection cn.ConnectionString = ConfigurationManager.ConnectionStrings("sirio8sql").ConnectionString cn.Open() cmd = New SqlCommand cmd.CommandText = _sql cmd.CommandType = CommandType.Text cmd.Connection = cn nraffected = cmd.ExecuteNonQuery() Return nraffected End Function Public Function nonull(ByVal valore, ByVal restituzione) If valore Is DBNull.Value Then Return restituzione Else Return valore End If End Function Public Function nonullorblank(ByVal valore, ByVal restituzione) If valore Is DBNull.Value Then Return restituzione Else If Trim(valore) = "" Then Return restituzione Else Return valore End If End If End Function Public Function estrai(ByVal colonna As String, ByVal tabella As String, ByVal campo_indice As String, ByVal valore_indice As String) As String Dim datiletti As SqlDataReader Dim cmd As New SqlCommand Dim valore As String = "" cn = New SqlConnection cn.ConnectionString = ConfigurationManager.ConnectionStrings("sirio8sql").ConnectionString cn.Open() cmd.CommandText = "select " & colonna & " from " & tabella & " where " & campo_indice & "=" & valore_indice 'HttpContext.Current.Response.Write(cmd.CommandText) 'HttpContext.Current.Response.End() cmd.Connection = cn datiletti = cmd.ExecuteReader(CommandBehavior.CloseConnection) For Each i In datiletti valore = datiletti(colonna).ToString Next cn.Close() cn = Nothing cmd = Nothing Return valore End Function Public Sub DBchiudi() cn.Close() cn = Nothing End Sub End Class
Nonostante tutto, dopo un paio di giorni, l'errore si è ripresentato, nonostante un Max Pool Size reimpostato a 200...Qualche idea?

Qualche idea?
Rispondi quotando