There is already an open DataReader ...错误与IIS有关吗?

十豆三 2010-09-29 01:40:42
用户服务器环境:
Windows 2003 (SP2) 32位
SQL Server 2000 标准版 (SP4)(也有可能是是企业版,这个没记准)
用户描述:客户端登陆或查询时有时发生错误(错误截图如下),一段时间(1个月左右)后来就所有用户登录、查询都用不了了,最后用户将服务器重启后可以使用了,但可能过几天或一段时间后,还会发生,所以想彻底解决一下。
错误截图1
错误截图2


公司某人说可能是IIS问题,让重装服务器系统及IIS及数据库,因为服务器重装涉及很多方面,所以先来提问。
公司某人怀疑可能是IIS问题,是因为当时2003系统已打上SP2,之前没有安装IIS,后单独安装的IIS,此IIS是每三方提供的独立安装包,在下面网页的最下面,
http://landian.cq.cn/
因为IIS的此种安装方式,所以公司某人怀疑是IIS问题,我个人感觉不应该是IIS问题,所以就问一下此问题与IIS有关的可能性有多大?
1、肯定不是IIS问题。(结果:不用重装服务器系统及数据库,让程序员改程序)
2、有可能是IIS问题,但几率非常小。(结果:重装服务器系统及数据库 试试)
3、有可能是IIS问题,而且几率很大。(结果:重装服务器系统及数据库)
4、肯定是IIS问题。(结果:必须重装服务器系统及数据库)
...全文
413 56 打赏 收藏 转发到动态 举报
写回复
用AI写文章
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2010-10-03
  • 打赏
  • 举报
回复
DAL的问题,估计是用了静态的对象或者在session里面缓存了数据对象。
嗷嗷 2010-09-30
  • 打赏
  • 举报
回复
我以前也遇到过这样的问题,是DataReader的问题,在这里又学习了~
十豆三 2010-09-30
  • 打赏
  • 举报
回复
多谢各位!
我让程序员参考一下后,将解决结果再帖上来。
wang13592578713 2010-09-30
  • 打赏
  • 举报
回复
datareader 连接数据库时是面向连接的
你使用后没有关闭或者是使用了静态的链接

你应该在每次使用的时候创建一个对象,使用后在关闭就没有问题了,这个问题我遇见过!
肖无疾 2010-09-30
  • 打赏
  • 举报
回复
接49楼
应该是DataContext被设为静态的了
一个实例用一个connection
然后一并发就出问题了
danjiewu 2010-09-30
  • 打赏
  • 举报
回复
异常的信息已经给的那么清楚了,明显是程序的问题
检查一下程序里是否用了静态的Command或者Adapter?异常的时候是不是正确释放资源了?还有同步是不是做好了?
纯唇Yu弄 2010-09-30
  • 打赏
  • 举报
回复
应该和IIS没关 就是程序的问题
肖无疾 2010-09-29
  • 打赏
  • 举报
回复
嘿嘿 其实我们也遇到过 搜索了整个解决方案是没有datareader的
那就是Linq使用的问题了 google“linq datareader”吧
延时执行 估计使用了类似下面的代码
var temp=arr.Where(...);//未执行查询,应该ToArray()
if(temp.Count(..)>temp.Count(...))//执行两个sql语句
足球中国 2010-09-29
  • 打赏
  • 举报
回复
datareader效率非常高。一般这个问题是在循环的时候没有关闭。或其他的事件造成的没有关闭,事件又触发了打开操作。
wuyq11 2010-09-29
  • 打赏
  • 举报
回复
数据库操作类
wuyq11 2010-09-29
  • 打赏
  • 举报
回复
应该不是iIS问题
datareader 连接数据库时是面向连接的
datareader怎么使用的
一般PrepareCommand(cmd, connection, transaction, commandType, commandText, commandParameters, out mustCloseConnection);
SqlDataReader dataReader;
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
vip__888 2010-09-29
  • 打赏
  • 举报
回复
读取数据库的时候没有及时关闭连接
DataReader这样的还是不要使用的好
或者使用SqlHelper
企业库都行啊
StillMiss 2010-09-29
  • 打赏
  • 举报
回复
关注下 我怕DataReader这东西
辰爸 2010-09-29
  • 打赏
  • 举报
回复
估计是程序中使用DataReader没有及时关闭数据库造成的吧!~时间长了资源耗尽!~建议检查链接数据库的代码!~
ireenter 2010-09-29
  • 打赏
  • 举报
回复
数据库打开了再打开没有关闭,不是IIS的问题,检查数据访问的代码吧。
十豆三 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 ihandler 的回复:]
PS:IIS到微软官网或找个系统安装盘,干嘛用第三方
[/Quote]

系统是原机带的,后打上了 SP2,这时再用系统安装盘安装IIS提示 SP2 的源盘,所以安装了。

正常步骤:非克隆方法安装系统,安装IIS,再打 SP2。
大飞飞虫 2010-09-29
  • 打赏
  • 举报
回复
代码问题,datareader使用不当,有未关闭而嵌套重叠使用的嫌疑。
一般这样的问题用dataset能够避免,损失一些内存。
hitlcyu19 2010-09-29
  • 打赏
  • 举报
回复
帮顶一下
IHandler 2010-09-29
  • 打赏
  • 举报
回复
也有可能在外层定义的DataReader,而在内层反复使用
Teng_s2000 2010-09-29
  • 打赏
  • 举报
回复
用完要Close那个Reader
加载更多回复(36)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧