我正在研究其他人大量使用tableAdapter的项目。该网站可以运行,但它会定期在事件日志中添加一个条目:

  

" ExecuteReader需要打开和   可用连接。连接   目前的状态是连接。 "

除非有高流量(每秒5次以上请求)异常相同,否则网站不会抛出异常,指向这行代码:

this.Adapter.Fill(dataTable);
  

堆栈跟踪:at   System.Data.SqlClient.SqlConnection.GetOpenConnection(字符串   方法)at   System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(字符串   方法,SqlCommand命令)

如何阻止此错误?感谢。

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

  

“已经有一个开放的DataReader   与此命令相关联   必须先关闭。“

有帮助吗?

解决方案

我会说你可能为了多种目的使用相同的连接,其中一个被另一个线程关闭。

我建议添加一些跟踪来弄清楚发生了什么。很难调试这种错误,这是你在生产时才得到的错误:(

其他提示

如果您似乎已超出允许的数据库打开连接数。可以通过为“最小池大小”和“最大池大小”值指定值来在连接字符串中设置此值。我认为Min Pool Size的默认值为0,Max Pool Size的默认值为100,但我不确定。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top