怎么查看.net连接池的泄漏数量?版本是2.0的,在网上找了些资料,说和这个有关:NumberOfReclaimedConnections 但不知道怎么用,希望那位大侠能告知,希望可以详细具体点

解决方案 »

  1.   

    用Performance Monitor来看:http://msdn.microsoft.com/en-us/library/ms254503(VS.80).aspx
    什么叫泄露呢?NumberOfReclaimedConnections 是指被GC回收的Connection
      

  2.   

    用GC回收的就是没有用.close()或者.dispose()释放的数量
      

  3.   

    你到底想要干吗?不能说清楚一点吗?
    什么叫.net连接池的泄漏数量?请你解释一下“泄露”这个名词。
    你是不是就是想看没有用.close()或者.dispose()释放的数量?问题没有讲清楚,别人怎么帮你?
      

  4.   

    是的,我就是就是想看没有用.close()或者.dispose()释放的连接数量
    网站现在已经开始运行了,有时会出现下面的异常:
    Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
    在网上找了些资料,有的说是连接池没有释放,所以我就想看看没释放的数量有多少?好改过来
    也有的说是数据量太大了,Sqlcommand执行时间设置太短,我没有设置这个参数,用的是默认的,况且数据量也不是太大
    也就几万条吧
      

  5.   

    尽量使用try{}catch(){}finally{} 在finally里close掉连接
      

  6.   

    谁告诉你的...你用Dispose释放的非托管资源会被GC回收,过期的托管资源也会被GC回收...偏偏你说的这种情况下非托管资源GC是不回收的...
      

  7.   

    是不是数据库服务器资源一直处于峰值。你的数据库是不是sql2000的?sql2000默认不会自动释放内存。
      

  8.   

    我遇到过这种问题,其实很简单,在web.config里面把连接池加大就行了 Max Pool Size=10240 等。问题就会解决
      

  9.   

    SqlConnection  是非托管资源,GC回收不到,所以一定要手动调用Dispose方法来释放资源。
      

  10.   

    Close不行吗?
    我就是想看下有多少没有写Dispose或Close的,然后再改,我看了下DLL层,没有发现没释放的连接
    所以就想看下到底有没有?
      

  11.   


    没有释放并且不知道怎么释放的话,最好使用USING ,让程序帮你释放
      

  12.   

    using(DataSet ds=new DataSet())
    {
    }
      

  13.   

    using( SqlConnection con = new SqlConnection(conn)) 

    }
      

  14.   

    昨天的超时代码是这一段:using (DataTable dt = supply.GetListAll(ShowMode.Checked,_pageindex, _pagesize).Tables[0])
            {
                rptSD.DataSource = dt;
                rptSD.DataBind();
            }这个最后调用的是一个分页存储过程
      

  15.   

    使用性能查看器 就能看出来
    控制面板->管理工具->性能
    具体上百度搜索一下
      

  16.   

    此贴结了,看出错信息吧
    开了个新贴:http://topic.csdn.net/u/20090427/09/d990821c-c4b3-47d0-849c-07fda278f83b.html?seed=325859017