12

背景:我正在将我的应用程序从 mssql 移动到 npgsql v2.0.11.92。在运行我的应用程序几分钟或几小时后,我得到一个System.Exception: Timeout while getting a connection from the pool

我在 x64 平台上的 x86 环境中使用 lib 版本 2.0.11.92。所有连接都已关闭并最迟在 finally 块中处理,但过了一会儿,我收到错误消息。所以,应该是Npgsql库的问题。

在我的应用程序中,每隔几秒钟就会在后台发生大量查询,但大多数时候,它们只是按顺序运行,而不是并行运行。

我使用的连接字符串是:SERVER=mydbserver;MINPOOLSIZE=3;MaxPoolSize=15;ConnectionLifeTime=7;DATABASE=Test DB;UID=user;PWD=pass

我正在尝试诊断 npgsql 中泄漏的 postgres 连接。

仅供参考:Npgsql 库已经存在泄漏问题,该问题已在最新版本 2.0.11.92 中得到修复。但我认为仍然存在一些问题。

当前库版本(npgsql v2.0.11.92)是否有人遇到过类似问题?

4

1 回答 1

11

我有同样的问题。解决方案是关闭连接池。在从 c# 应用程序连接到数据库之前,在连接字符串中执行此操作

在您的连接字符串中:

Pooling=false;
于 2012-04-25T06:23:59.987 回答