我们在Ubuntu 14.04上的Docker容器中运行.NET Core 1.1 API。 API通过EF Core与各种SQL Server数据库交互,我们看到的是数据库连接没有被清理,也没有被重用。我们很快就通过sp_who2查询在数据库上看到了数千个连接。
Scoped
生命周期定义的,因此应在每次会话后进行清理。这可能是.NET Core中的设计吗?或者我们错过了一招?我们怎么能强迫EF做一些连接清理呢?
答案 0 :(得分:3)
我们现在很确定这是由于版本4.3.1中修复的corefx System.Data.SqlClient中的错误引起的。我们运行4.3.0并且现在已更新到4.3.1,初始测试表明问题已解决。
您可以在dotnet / corefx Github存储库Issue #13422中阅读有关该问题的更多信息。
总之,它似乎是一个特定于Linux的错误,其中没有处理连接。
当我们证明这解决了我满意的问题时,我会确认/标记为答案。