加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何检测ASP.NET应用程序中的SqlServer连接泄漏?

发布时间:2020-12-15 18:54:52 所属栏目:asp.Net 来源:网络整理
导读:我目前正在对ASP.net 2.0应用程序进行一些GUI测试。 RDBMS是SQL Server 2005.主机是Win Server 2003 / IIS 6.0。 我没有应用程序的源代码,因为它是由不释放代码的外部公司编程。 我注意到,当我重新启动IIS但应用程序运行良好,但在一些测试后,我已经打开
我目前正在对ASP.net 2.0应用程序进行一些GUI测试。
RDBMS是SQL Server 2005.主机是Win Server 2003 / IIS 6.0。

我没有应用程序的源代码,因为它是由不释放代码的外部公司编程。

我注意到,当我重新启动IIS但应用程序运行良好,但在一些测试后,我已经打开和关闭我的浏览器几个小时,应用程序开始变得越来越慢。我想知道这种行为是否是由于一个坏的关闭连接实践从程序员:我怀疑在数据库上的一个开放的连接泄漏。

我猜.Net垃圾收集器最终会关闭它们,但…可能需要一段时间,不是?

我有SQL Server Management Studio,我从活动监视器注意到有很多连接在数据库上打开。

从上面所说的,这里有一些问题与主要问题相关:

>有什么办法在SQL知道
Server 2005如果连接
打开,因为他们在等待
在连接池中使用或if
他们是开放的,因为他们被使用
应用?
>有人知道好
在线/纸资源在哪里可以
学习如何使用性能
计数器或一些其他类型的工具
以帮助跟踪这些类型
问题?
>如果性能计数器是最好的
解决方案,什么是我的变量
应该看?

解决方法

您可以始终检查来自web.config的连接字符串(主要是如果他们已经激活连接池,如果他们有任何连接限制启用)。

此外,如果使用IIS 6,您可以将Web应用程序设置为使用单独的应用程序池,并设置其他选项以用于回收内存和进程。

关于性能计数器,您可以检查垃圾收集器运行的时间,
应用程序正在使用多少内存等。

如果您可以访问sql server,则可以监视从应用程序创建的连接(为每个已安装的SQL Server实例定义性能计数器)。

在MSDN Magazine有一些文章。也可以使用SOS调试库附加到应用程序的过程,并手动检查。

并且,如果你没有源代码,尝试使用Reflector获取应用程序的源(他们将非常有用的调试)

@Later编辑:你可以检查这里question这里stackoverflow.com太

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读