iis - IIS连接池查询/泄漏跟踪

标签 iis ado connection-pooling

通过此helpful article,我已确认在运行W2k3的IIS 6服务器上的某些应用程序中存在连接池泄漏。

困难的是,我正在6个应用程序池中为该服务器提供300个网站,这些网站由700位开发人员编写,其中50%是.NET 1.1,甚至没有在CLR数据性能计数器中显示连接。如果一切都是.NET 2.0+,我可以看到连接最终会增长,但是我什至对那种 slim 的监视工具都不走运。

我的300个网站可能连接到分布在Oracle,SQLServer和异常值之间的大约100多个数据库,因此我也无法观察数据库端的连接。

现在,我最好的唯一计划是对最糟糕的罪犯进行宽松的二进制搜索。我将杀死应用程序池并缓慢地从中删除应用程序,直到我发现杀死哪个应用程序池时哪个连接导致最多的连接中断。但是,由于这是一个生产工位,而且我喜欢继续工作,因此这可能需要数周的时间来进行追踪。

有人知道询问IIS连接池以了解其来源或所有者的方法吗?创建它们时,我是否可以附加一个MSMQ触发器?我忽略了什么愚蠢的事情?

凯文

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

最佳答案

尝试从此first article from Bill Vaughn开始。

关于iis - IIS连接池查询/泄漏跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/163164/

相关文章:

asp.net - 无法让 IIS 中的处理程序工作

delphi - 使用 ADO 从 Delphi 向 SQL Server 2000 插入 NULL

ruby-on-rails - 有什么理由在 ActiveRecord 中使用数据库连接池吗?

java - 如何在 Web App 而不是在 tomcat 中创建连接池

iis - 将 asp.net core 配置排除在源代码和管道之外

asp.net - 在 SharePoint Web 应用程序和 ASP.NET Web 应用程序之间传递用户凭据

c++ - 删除查询后更新自动编号字段

delphi - 将 Delphi XE2 ADO 组件与 SQLOLEDB.1 提供程序一起使用是否存在已知问题?

jdbc - C3P0 maxPoolSize 已耗尽

c# - 如何将一些自定义数据与当前的 HttpRequest 相关联?