2017-08-13 192 views
2

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

但我们有一些问题:

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

  2. 如果我们拔掉两台计算机之间的以太网电缆,客户端会注意到发送数据包,在大约20秒后断开的连接,并在这个间隔我们可能会松动几个包。

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

+0

感谢@marc_s进行编辑。 – Safa

+0

任何想法(解决方案)? – Safa

回答

-1

通读本文。它应该提供有关如何实施解决方案的足够信息。 https://blogs.msdn.microsoft.com/cesardelatorre/2017/03/26/using-resilient-entity-framework-core-sql-connections-and-transactions-retries-with-exponential-backoff/

编辑:关于不想丢包的问题,​​完全取决于你的实现。如果发生异常,您可能想要保留数据并在连接重新恢复时重试发送数据。

+0

我不明白链接和问题之间的联系。 – Safa

+0

当你的c#应用程序建立了一个连接,并且出现问题时,将会出现异常。你需要以正确的方式处理异常。该链接仅显示了一种方法。 – vishalvatsal

相关问题