前几次都可以正常进入,但刷新几次后就会报如下错误:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。源错误: 
行 70:  SqlConnection con1=new SqlConnection ();
行 71:  con1.ConnectionString =ConfigurationSettings.AppSettings ["ConnectionString"];
行 72:  con1.Open ();
行 73: 
行 74:  string selSql="select fileid,title,releasedate from news where categoryid="+categoryID1+"order by fileid desc";
 源文件: C:\Inetpub\wwwroot\baoxian\filelist.aspx.cs    行: 72 

解决方案 »

  1.   

    连接对象没有及时关闭.特别是使用SqlDataReader的时候要注意.
      

  2.   

    连接对象没有及时关闭.特别是使用SqlDataReader的时候要注意.
    如果不知道怎么关,System.GC.Collect();
      

  3.   

    用完连接后马上关闭,可以写在using块中,可以共用的连接就不要新开连接了
      

  4.   

    谢谢各位大的回复
    但现在我发现问题可能是出现在IIS上,
    因为在初次报错后,我再刷新时,我监测sql server但压根还没发现有线程活动,便已报错了.
    请问是否存在iis中的连接池.另外:我可以肯定我用的这页没有用sqldatareader 对象.
    全部是用dataset并且全部的connection 在 fill完dataset后,全部用如下语句关闭
    con.close();
    con.dispose();
    现在可能是什么原因呢?
      

  5.   

    是一个头疼的问题,原因是因为连接打开后没有及时关闭,最好使用微软提供的Application Data Access Block 3.0
      

  6.   

    改了源程序后,还要重启电脑,才能重新归还所有资源.
    方法是:
    在所有的dataadapter.fill后面加上con.close(). 及con.dispose().
    谢谢大家的指教.