大哥们:
    我做的.net程序,c#的。那个首页 index.aspx,打开执行一段时间后,时间不一定。有时再重新访问这个index.aspx时,就提示:
超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 是不是我的iis有问题。但为什么,我写的其他的.net程序没这个问题。是不是我的数据库连接有错???服务器重新启动一下,就行了,没这个问题了。这段时间又会有的。

解决方案 »

  1.   

    你使用的Connection对象没有调用Close方法。
      

  2.   

    有可能是数据库用了没关。因为总是提示:行 33: 
    行 34:  Conn= new SqlConnection(ConnStr);   //SqlConnection实例化一个对象,以后这个对象就有属性了,并生成一个新的连接
    行 35:  Conn.Open();有错。还有其他原因吗??高手吗??
     
      

  3.   

    我原先也遇到过这样的问题,是因为程序中的datareader对象使用后未关闭及消毁,使得数据库连接数量不断增大直到资源耗尽,你查查代码,看看有没有这种情况。
      

  4.   

    再问一下,datareader如何做到,彻底关闭和释放资源?
      

  5.   

    再问一下,datareader如何做到,彻底关闭和释放资源?
    -------------------------------------
    用datareader的 dispose(); 方法
      

  6.   

    还是不行。会不会和session有关,我用了大量的session,其实也不多,6-7个左右吧,再请大哥们看看原因
      

  7.   

    我现在也遇到同样的问题,我用的是 sqlHelper组件,数据库端都是用DataReader读取数据,搂主的问题 也时不时遇到~~ 
    所有的DataReader我都没关闭,调用时 我都加了using
    using(SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.connString,CommandType.StoredProcedure,sqlText,commandParameters))
    这样还是有问题
      

  8.   

    是啊,楼上的大哥,我也不知道什么问题。反正,我的首页 index.aspx中,由不少的.ascx用户控件组成的。第一个控件,又显示不同栏目的新闻。数据库读出的现象比较多。但我已经每次用了 open,又及时地close了,还是没用。现在我的最新发现是:本地调试时,这种可能性出现的比较少,sql数据库占内存,一般在40M左右,但上传到服务器后,一运行,就占 70M多的内存,郁闷的很。期待高手为我终极这个问题,狂谢!
      

  9.   

    我要疯了,请高手出山啊,总不能一有问题就重启服务器吧???????????有没有好的方法 数据库关闭连接 是 conn.close() 还是conn.dispose() 啊,那个好?????????
      

  10.   

    同情.用sql监视器看看访问数据库的操作是否太密集
      

  11.   

    to:楼主 :
    我的问题解决了,就是没有关闭DataReader的连接,我在调用DataReader时都用得是using,本来以为这样可以释放资源的,可是没有能释放,现在我在每个using语块最后加上一条dr.close(),就可以了~!刚刚测试了,应该不会有问题了!你是不是还有没有关闭的DataReader?搜一下~
      

  12.   

    数据库的问题,在你写的代码中打开数据库连接,但是使用后没有关闭,当数据库的连接池超过设定时就会报错。
    用conn.Close();就可以了
      

  13.   

    奇怪的缓存问题 谁帮我解决一下啊 
    http://community.csdn.net/Expert/topic/4358/4358752.xml?temp=.8871271顺便帮你顶
      

  14.   

    我的dr 全部close了啊??怎么把连接池个数增大??????
      

  15.   

    我自己再顶一次,今天一定把这个问题给解决,并知道为什么要这样解决!我来说一下我的程序,数据库操作全部写成了 .cs类文件,执行时调用一下就行。以前做的程序和现在的差不多,但没有问题。是因为我程序通过后,我把这个类文件,比如data.cs,打成data.dll,再调用。一直没问题。我估计如果我把现在的出问题的程序的那些类文件,也打成dll的模式,估计不会有问题了。
      

  16.   

    在调用 conn.Close() 时 与db的连接并没有真正被关闭,而是被传递到连接池中,之后体就在池中重用。 只有真正清除连接就可以避免调。 
    方法:   
          调用 conn.Dispose() 就搞定了,^_^ 
    http://www.cnblogs.com/yidishui/archive/2005/04/17/139235.html
      

  17.   

    我也遇到这个问题,我是这样写的还是不行,我两个都写了 conn.close();
    conn.Dispose() ;
      

  18.   

    我在sql连接字串中,已经加了这个最厉害的语句,还是不行!Enlist=true;Pooling=true;Max Pool Size=512;Min Pool Size=0;Connection Lifetime=300;user id=sa;packet size=1000
      

  19.   

    查看一下数据库连接操作,是否在每次执行操作后,都正确的关闭数据连接(conn.close())
      

  20.   

    楼上的大哥,给你的答案是肯定的,每次操作后,即开即关。不但写了conn.close(),而且也写了
    conn.disponse();
      

  21.   

    贴你的代码出来啊       \\\|///  
          \\ .-.- //  
    .      ( .@.@ )  
    +-------oOOo-----(_)-----oOOo---------+  
    |                  |  
    |     感谢无私帮助他人的朋友     |  
    |                  |  
    +---------------------Oooo------------+