gpt4 book ai didi

c# - 更新 .NET 框架导致 SQL 超时

转载 作者:IT王子 更新时间:2023-10-29 04:25:11 25 4
gpt4 key购买 nike

我们有一个以 .NET 4.5.1 为目标的应用程序,它保持不变。

但是,当我们将服务器上的 .NET Framework 从 4.5.1 升级到 4.7.1 时,我们在几个小时后开始遇到 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."

具有相同处理方式的其他服务器也产生了该问题,因此我们在 .NET 中寻找重大更改,并找到了这篇文章:https://blogs.msdn.microsoft.com/dataaccesstechnologies/2016/05/07/connection-timeout-issue-with-net-framework-4-6-1-transparentnetworkipresolution/

那篇文章引用了不同的异常类型,但可能有些相关。但是,如果我们的 DNS 查找时间超过 500 毫秒,我会感到震惊。此外,我希望看到更多关于此连接字符串配置的案例被报告和使用。

我们的应用程序流量很高,但我们相信我们不会泄漏连接,因为在我们更新 .NET 框架之前,多年来这从来都不是问题。

我们将尝试应用此修复程序(并等待超过 24 小时以查看结果),但还有什么我们可能遗漏的吗?我们不确定这是解决方案。

编辑:即使在将 .NET 回滚到 4.5.1 并重新启动所有服务器后,我们仍然看到问题。代码库中没有其他任何更改,但我们尚未回滚启用“SchUseStrongCrypto”的注册表更改 - 如果这可能是原因?

最佳答案

我没有遇到过这种情况,但是链接https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.0-4.7.1表示对 SQL 连接池的更改,现在它会在更长的时间内重试断开的连接。该链接还提供了绕过新行为的设置;

 ConnectRetryCount = 0

作为此行为更改的副作用或预期功能,池中的连接现在比以前保持事件状态的时间可能长得多,因此会用“已死但正在重试的连接”堵塞您的连接池,而以前它们会死了吗?

有点投机;但可能会引导您走上正确的道路。

关于c# - 更新 .NET 框架导致 SQL 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com