FBr*_*t87 25 .net c# sql connection-pooling
我们有一个针对.NET 4.5.1的应用程序,并且保持不变.
但是,当我们从4.5.1 - > 4.7.1升级服务器上的.NET框架时,我们几小时后开始体验SQL超时(应用程序目标保持在4.5.1).
"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."
Run Code Online (Sandbox Code Playgroud)
其他具有相同处理的服务器也产生了这个问题,因此我们在.NET中寻找一个重大变化,并发现了这篇文章:https://blogs.msdn.microsoft.com/dataaccesstechnologies/2016/05/07/connection-超时问题,与净框架-4-6-1-transparentnetworkipresolution /
那篇文章引用了一个不同的异常类型,但可能有些相关.但是,如果我们的DNS查询时间超过500毫秒,我会感到震惊.此外,我希望看到更多的连接字符串配置报告和使用的情况.
我们的应用程序流量很大,但我们确信我们不会泄漏连接,因为在我们更新.NET框架之前,这一直是问题多年.
我们将尝试应用此修复程序(并等待> 24小时以查看结果),但还有什么我们可能错过的吗?我们不相信这是解决方案.
编辑:即使将.NET回滚到4.5.1并重新启动所有服务器,我们仍然会看到问题.代码库中没有其他任何变化,但我们还没有回滚启用'SchUseStrongCrypto'的注册表更改 - 如果这可能是原因?
我没有经历过这种情况,但链接https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.0-4.7.1表明 SQL 连接池发生了变化,它在现在重试断开的连接更长时间。该链接还提供了绕过新行为的设置;
ConnectRetryCount = 0
Run Code Online (Sandbox Code Playgroud)
作为这种行为改变的副作用或预期特征,池中的连接现在是否可能比以前保持活动的时间长得多,因此会用“死但重试连接”堵塞您的连接池,而以前它们会死?
它有点投机;但可能会引导您走上正确的道路。
归档时间: |
|
查看次数: |
1336 次 |
最近记录: |