0
我有一個非常簡單的服務,一直以前能用,但現在我把它升級到較新的.NET版本,它已停止,像這樣的錯誤消息的工作:SQL超時
超時過期。在從池中獲取 連接之前已經超時。可能發生了這種情況,因爲所有連接池都正在使用中,並且已達到最大池大小。
我試圖執行存儲過程,該服務試圖運行並直接在MS運行它sql服務器管理工作室需要少於1秒,所以我不明白什麼是可能的問題?使用相同數據庫的客戶端(不是相同的存儲過程)在同時使用它們時沒有任何超時問題。
編輯,所以你可以看到代碼:
在服務啓動時這就是所謂的:
Private Sub SetupGetBatch1Command()
GetBatch1Command = New System.Data.SqlClient.SqlCommand("spgetTheData1")
GetBatch1Command.CommandType = Data.CommandType.StoredProcedure
End Sub
這有一定的時間間隔:
Private Function GetBatch1() As DataSet
Dim dataset As New DataSet
Dim adapter As Data.SqlClient.SqlDataAdapter
Dim cn As New System.Data.SqlClient.SqlConnection(connectionstring())
GetBatch1Command.Connection = cn
adapter = New Data.SqlClient.SqlDataAdapter(GetBatch1Command)
adapter.Fill(dataset)
Return dataset
End Function
我沒有這樣做並不太瞭解它,但我想我至少應該遵循下面的建議並在某處添加cn.dispose()?
還有其他類似的數據庫連接,所有的連接都與上面的例子完全相同。
你從服務運行時分析了查詢嗎? – 2012-07-06 08:57:52
你可以發佈你的連接字符串嗎?其他客戶端是否使用相同的連接字符串? – Thomas 2012-07-06 09:09:25
@Micke在完成使用後,您是否正確地處理了連接和命令?爲了讓SO人員能夠提供幫助,您可能需要在代碼中顯示您調用存儲過程的代碼... – user1429080 2012-07-06 09:20:33