【发布时间】:2012-01-25 14:46:33
【问题描述】:
我看到了可怕的“从池中获取连接之前已过超时时间”错误。
我已经在代码中搜索了任何未关闭的数据库连接,但找不到。
我想做的是:下次我们收到此错误时,让系统转储一个列表,其中列出了哪些 proc 或 http 请求持有所有句柄,这样我就可以找出导致问题的代码。
最好看看这些把手被握了多长时间,这样我就可以发现使用过但未关闭的连接。
有什么办法吗?
【问题讨论】:
-
池中的用户是否可能多于连接数?
-
您是否将连接引用存储在会话状态或其他生命周期超过一个 http 请求的地方?
-
不,它们只是在每次请求时打开和(据说)关闭。
-
非常相似的问题 - stackoverflow.com/questions/1600718/…
-
您要连接的数据库是什么?否则,您运行的服务器是否有可能比池中的最大连接数多于执行线程(服务请求)?
标签: asp.net connection-pooling