我正在研究其他人大量使用tableAdapter的项目。该网站可以运行,但它会定期在事件日志中添加一个条目:
“ExecuteReader需要打开和 可用连接。连接 目前的状态是连接。 “
除非有高流量(每秒5次以上请求)异常相同,否则网站不会抛出异常,指向这行代码:
this.Adapter.Fill(dataTable);
堆栈跟踪:at System.Data.SqlClient.SqlConnection.GetOpenConnection(字符串 方法)at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(字符串 方法,SqlCommand命令)
如何阻止此错误?感谢。
原来我只得到一半的图片,错误,当它会抛出一个错误是:
“已经有一个开放的DataReader 与此命令相关联 必须先关闭。“
答案 0 :(得分:0)
我会说你可能为了多种目的使用相同的连接,其中一个被另一个线程关闭。
我建议添加一些跟踪来弄清楚发生了什么。很难调试这种错误,这是你在生产时才得到的错误:(
答案 1 :(得分:0)
如果您似乎已超出允许的数据库打开连接数。可以通过为“最小池大小”和“最大池大小”值指定值来在连接字符串中设置此值。我认为Min Pool Size的默认值为0,Max Pool Size的默认值为100,但我不确定。
尝试更改它们并查看它是否有帮助。