保持 ADODB 连接打开一段时间

发布于 2024-11-04 11:11:42 字数 238 浏览 1 评论 0原文

我在 ADO.Net 应用程序中遇到与 SQL Server 的 ADO-DB 连接问题。 我在 Web 服务启动时打开连接,并在结束时关闭它。这意味着只要服务运行,连接就会打开。 我将连接传递给实际处理事务的 COM dll。 我现在面临一个问题,该命令执行一段时间后会抛出异常,尽管之前执行的操作相同。但连接状态仅显示“打开”。 所以我们必须关闭连接并打开它并重试事务。这样就可以了。 但我想知道根本原因和实际的解决方案。 还有一件事,我们现在只有一个客户。

I have a problem with ADO-DB Connection to SQL Server in the ADO.Net Application.
I am opening the connection in a web-service when it starts and closing it when it ends.Meaning the connection is open as long as the service runs.
I am passing the connection to a COM dll which actually handles the transactions.
I am now facing one issue that,The command executes throws exception after a while though the same execute worked before.But the connection state shows Open only.
So we have to close the connection and open it and retry the transaction.This way it works.
But I want to know the root cause an actual solution for this.
One more thing,We have only one client right now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日浅笑〃 2024-11-11 11:11:42

在应用程序的整个生命周期中保持连接打开是一种不好的做法。连接可能会超时,可能会出现一些网络问题等。连接可能会失败,并且没有办法避免这种情况 - 您必须捕获异常并以某种方式处理它。此外,这不允许您同时处理多个请求,因为您不能在单个连接上有两个并发事务。

正确的方法是为每个 Web 服务请求创建一个新连接。 .NET默认使用连接池,因此对性能的影响非常小。

Keeping connection opened for the whole lifetime of the application is a bad practice. Connection can timeout, there can be some network problems, etc. Connection simply can fail and there is no way to avoid that - you must catch exception and somehow handle it. Also this doesn't allow you to process multiple requests concurrently because you cannot have two concurrent transactions on single connection.

The correct way is creating a new connection for each web service request. .NET by default uses connection pool so the performance impact is very small.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文