我遇到了一个web应用程序的问题,它耗尽了连接池中的所有可用连接。我似乎回想起一些用于诊断所有活动连接的好工具,但却一无所获。诊断此问题有哪些好的选项?
发布于 2009-03-26 21:28:20
WinDbg with SOS的.Net memory profiler将允许您跟踪谁持有对您的connection对象的引用,使用该信息您应该能够跟踪违规方法。
发布于 2009-03-26 20:32:03
您是否在应用程序中使用SqlDataReader对象?SqlDataReader对象将保持其连接处于打开状态,直到其关闭。
发布于 2009-03-26 20:36:27
我投票支持代码审查。我曾经在一个由第三方构建的应用程序中遇到过类似的情况,在搜索连接时,它不会使用/finally来确保在发生异常时关闭连接。
同样,正如Michael所指出的,您必须确保数据读取器使用的连接是关闭的。您可以指定在关闭读取器时关闭连接,然后对于这些情况,只需确保数据读取器已被释放(使用using(){} )
https://stackoverflow.com/questions/687391
复制相似问题