C# Firebird数据库上的MaxPoolSize错误

C# Firebird数据库上的MaxPoolSize错误,c#,connection-pooling,firebird,C#,Connection Pooling,Firebird,在连接数据库时,我使用连接池和Firebird数据库。我使用FirebirdSql.Data.FirebirdClient版本2.6.5.0。 我有以下连接字符串: <add name="db" connectionString="Server=***;user id=***;password=***;Charset=ANSI_CHARSET;Database=***; Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPool

在连接数据库时,我使用连接池和Firebird数据库。我使用FirebirdSql.Data.FirebirdClient版本2.6.5.0。 我有以下连接字符串:

<add name="db" connectionString="Server=***;user   
id=***;password=***;Charset=ANSI_CHARSET;Database=***;
Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=10" 
providerName="FirebirdSql.Data.FirebirdClient" />
错误是由达到MaxPoolSize导致的。。。每次我调用上述代码时,在输出窗口中我都会看到一条辅助消息:

Before Close: 1
Before Close: 2
...
Before Close: 10

您的代码可能会导致异常,并且永远无法到达Close(),从而使连接保持打开状态,这可能会导致打开的连接太多

您可能希望尝试在代码中实现Using()


我在达到最大连接数时遇到了类似的问题,Using()确实有帮助。

尝试在iis中使用回收连接池。您可以将其设置为每60分钟左右重置一次。这肯定会解决您的问题。

您是否尝试过版本4.1.0.0?当我使用版本4.1.0.0时,我遇到了类似的错误“连接池已满”。您没有处理FBCommand,这可能会阻止连接得到清理。我更改了处理FBCommand的代码,但是我仍然有相同的错误。我在这里没有看到循环,所以你怎么能在输出中有多条消息呢?提供真实的代码。当我在代码中实现Using()或try,catch with finally时,我仍然有类似的错误。我只是失去了找到解决方案的希望。我也有类似的情况。我每隔15分钟重新启动一次应用程序,但我会尝试在池异常时使用FbConnection.ClearAllPools()
Timeout exceeded.
at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckMaxPoolSize ()
at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut ()
at FirebirdSql.Data.FirebirdClient.FbConnection.Open ()
Before Close: 1
Before Close: 2
...
Before Close: 10