首页 新闻 会员 周边 捐助

疑似 EF Core 的 DbContextPool 会造成数据库连接泄漏

0
悬赏园豆:100 [已解决问题] 解决于 2019-02-18 23:20

最近在一个 ASP.NET Core 应用的日志中发现数据库连接池中的连接被用光的错误:

System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.
   at System.Data.Common.ADP.ExceptionWithStackTrace(Exception e)

而这个项目与其他项目主要不同之处是使用了 .NET Core 2.1 引入的 DbContextPool

services.AddDbContextPool<JobDb>(option =>
    option.UseSqlServer(Configuration.DbConnectionStr(), builder =>
    {
        builder.EnableRetryOnFailure(
            maxRetryCount: 5,
            maxRetryDelay: TimeSpan.FromSeconds(10),
            errorNumbersToAdd: new int[] { 2 });
    }));

昨天去掉 DbContextPool 之后到目前未出现问题,疑似 EF Core 的 DbContextPool 会造成数据库连接泄漏,请问如何定位是否是 DbContextPool 的bug ?

dudu的主页 dudu | 高人七级 | 园豆:29568
提问于:2019-02-18 10:46
< >
分享
最佳答案
0
dudu | 高人七级 |园豆:29568 | 2019-02-18 23:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册