通过此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
消息:超时已过期。从池中获取连接之前已经过超时时间。发生这种情况是因为所有池化连接都在使用中,并且达到了最大池大小。)
最佳答案
关于iis - IIS连接池查询/泄漏跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/163164/