2017-08-13 159 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

相關問題