2013-04-09 78 views
3

我不能重新連接到我的Redis數據庫執行以下操作:Booksleeve,錯誤時,拋出試圖打開連接連接被關閉後,當

  • 創建一個新的RedisConnection稱爲「連接」
  • 打開連接connection.Open().Wait();
  • 關閉連接connection.Close(true);
  • 現在,當我試圖connection.Open().Wait();拋出一個錯誤「連接已關閉」。

我知道連接已關閉,但爲什麼我無法重新打開它?

如果我不關閉連接,關閉Redis服務器,讓客戶端提升Closed事件,重新啓動服務器,然後嘗試再次使用connection.Open().Wait();打開連接,則會發生同樣的情況。 「連接已關閉」錯誤被拋出。

我的方法有什麼問題?我似乎無法使用Booksleeve正確管理連接狀態。

感謝

回答

2

這不是預期的使用情況,您打開和關閉BookSleeve連接。

  • ,因爲它是一個多路轉換器,可以預期,它被打開一次,然後由多個呼叫者同時使用(它是線程安全等)
  • 開口涉及各種握手(在網絡和協議水平)以確保正確的操作 - 這是最好的避免(它不是非常昂貴,注意)
  • 一旦關閉,沒有進行中的狀態是可行的;如果你真的想關閉它,只需使用全新的連接

就我個人而言,如果我在運行時重新配置系統或連接斷開,我只會關閉它。

+0

準確地說,我想使用它,至少在連接斷開時打開方法,但它不起作用。所以,我想我會實例化一個新的連接? – 2013-04-09 14:56:58

+0

@Freddy確實 - 只是「新」一個 – 2013-04-09 16:51:12

+4

@MarcGravell如果您可以提供彈性連接的實施方案,那將是非常好的。不需要成爲圖書館的一部分。推薦在wiki或這裏設置就足夠了。 – Kugel 2013-08-15 12:34:23