0

我正在处理其他人的大量使用 tableAdapters 的项目。该站点有效,但它经常在事件日志中添加一个条目:

“ExecuteReader 需要一个打开且可用的连接。连接的当前状态是正在连接。”

该站点不会抛出异常,除非流量很高(每秒 5 个以上的请求),否则异常是相同的,指向这行代码:

this.Adapter.Fill(dataTable);

堆栈跟踪:在 System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String 方法,SqlCommand 命令)的 System.Data.SqlClient.SqlConnection.GetOpenConnection(String 方法)

我怎样才能停止这个错误?谢谢。

原来我只得到了一半的图片,错误,当它会抛出一个错误是:

“已经有一个打开的 DataReader 与此命令关联,必须先关闭它。”

4

2 回答 2

0

我会说您可能出于多种目的使用相同的连接,其中一个正在被另一个线程关闭。

我建议添加一些跟踪来弄清楚发生了什么。这种错误很难调试,只有在生产环境中才会出现:(

于 2009-03-04T20:13:58.527 回答
0

如果您似乎超出了与数据库的允许打开连接数。这可以通过提供 Min Pool Size 和 Max Pool Size 值在连接字符串中进行设置。我认为 Min Pool Size 的默认值为 0,Max Pool Size 的默认值为 100,但我不确定。

尝试更改它们,看看是否有帮助。

于 2009-03-04T20:16:11.063 回答