在客户端检测SQL Server 2012中断开的连接

时间:2017-08-13 08:09:58

标签: c# sql-server keep-alive

我们正在开发一个C#程序,用于连接数据库并将一些数据包发送到数据库,然后将数据存储到数据库中。 C#程序和SQL Server位于两台独立的计算机上,我们希望确保始终建立C#程序和SQL Server之间的连接。如果此连接中断,我们必须再次尝试连接到SQL Server。

但是我们遇到了一些问题:

  1. 建立连接后,如果我们停止SQL Server,则不会通知客户端(C#程序)已关闭连接。从客户端向SQL Server发送数据包后,我们检测到断开的连接。 注意:我们不喜欢丢失任何数据包

  2. 如果我们拔掉两台计算机之间的以太网电缆,客户端会在发送数据包后发现连接断开,大约20秒后,在这段时间内我们可能会丢失几个数据包。

    < / LI>

    是否有更快更可靠的方法来检测SQL Server中的断开/关闭连接?

1 个答案:

答案 0 :(得分:-1)

阅读本文。它应该给你足够的信息,告诉你应该如何实现你的解决方案。 https://blogs.msdn.microsoft.com/cesardelatorre/2017/03/26/using-resilient-entity-framework-core-sql-connections-and-transactions-retries-with-exponential-backoff/

编辑:关于不想丢失数据包,它完全取决于您的实现。如果存在异常,您可能希望保留数据并在重新连接时重试发送数据。