IIS连接池查询/泄漏跟踪

IIS连接池查询/泄漏跟踪

问题描述:

根据这个helpful article我已经确认在运行W2k3的IIS 6服务器上的某些应用程序中有连接池泄漏。IIS连接池查询/泄漏跟踪

困难的部分是,我在6个应用程序池中服务于700个开发人员编写的300个网站,其中50%是.NET 1.1,它甚至没有在CLR数据性能计数器中显示连接。如果一切都是.NET 2.0以上的版本,我可以看到连接的增长,但我甚至对这个纤细的监控工具感到失望。

我的300个网站连接到Oracle,SQLServer和异常值之间的大概100多个数据库,所以我无法看到数据库端的连接。

现在我最好的唯一计划就是对我最恶劣的罪犯进行宽松的二分搜索。我会杀死应用程序池,并慢慢地从应用程序池中删除应用程序,直到我找到哪些单个应用程序导致大部分连接丢失,当我杀死他们的池。但由于这是一个生产箱,我喜欢继续就业,因此这可能需要数周才能成为追踪方法。

有谁知道一种方式来询问IIS连接池以了解其来源或所有者?有没有MSMQ触发器,我可能能够创建它们时可以附加它们?我忽略了什么愚蠢的东西?

凯文

(我将包括错误代码,以方便其他人通过搜索找到你的答案: 异常:System.InvalidOperationException 消息:超时时间已超时时间已过从池中获取连接之前。可能发生这种情况的原因是,所有连接池都在使用中,并且已达到最大池大小。)

尝试从此开始first article from Bill Vaughn

+0

优秀的文章。谢谢。 – codepoke 2009-01-07 16:01:34

Todd Denlinger写了一个梦幻般的课http://www.codeproject.com/KB/database/connectionmonitor.aspx,它观察Sql Server连接并报告在一段时间内没有妥善处理的连接。将它连接到您的网站,它会让您知道何时泄漏。