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