【问题标题】:Booksleeve, error thrown when trying to open connection after connection was closedBooksleeve,在连接关闭后尝试打开连接时抛出错误
【发布时间】:2013-04-09 22:43:37
【问题描述】:

我无法通过以下操作重新连接到我的 Redis 数据库:

  • 创建一个名为“connection”的新RedisConnection
  • 打开连接connection.Open().Wait();
  • 关闭连接connection.Close(true);
  • 现在,当我尝试connection.Open().Wait(); 时,会抛出错误“连接已关闭”。

我知道连接已关闭,但为什么我无法重新打开它?

如果我不关闭连接,而是关闭 Redis 服务器,让客户端引发 Closed 事件,重新启动服务器,然后再次尝试打开与 connection.Open().Wait(); 的连接,也会发生同样的情况。抛出“连接已关闭”错误。

我的方法有什么问题?我似乎无法使用 Booksleeve 正确管理连接状态。

谢谢

【问题讨论】:

    标签: c# redis booksleeve


    【解决方案1】:

    这不是您打开和关闭 BookSleeve 连接的预期用途。

    • 由于它是一个多路复用器,因此预计它会被打开一次,然后被多个调用者同时使用(它是线程安全的等)
    • 打开涉及各种握手(在网络和协议级别)以确保正确操作 - 最好避免这种情况(注意,它不会非常昂贵)
    • 一旦关闭,任何正在进行的状态都不可行;如果你真的想关闭它,你也可以使用全新的连接

    我个人只会在运行时重新配置系统或连接中断时关闭它。

    【讨论】:

    • 正是我想要使用它的目的,至少是连接断开时的 open 方法,但它不起作用。所以,我想我只是实例化一个新的连接?
    • @Freddy 确实 - 只是“新”一个
    • @MarcGravell 如果您可以提供弹性连接的实现,那就太好了。不需要成为图书馆的一部分。 wiki 或此处推荐的设置就足够了。
    猜你喜欢
    • 2011-11-24
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多