我正在使用 Booksleeve 1.1.0.6(最新的 nuget 包)。
我想为我的整个 Web 应用程序使用一个连接,所以我将它存储在一个单例中:
public static RedisConnection Conn = RedisConfig.GetUnsecuredConnection(waitForOpen: true);
RedisConfig.GetUnsecuredConnection方法与 BookSleeve 测试中使用的方法相同。
当我尝试执行操作时,我得到一个InvalidOperationException: The queue is closed异常:
[InvalidOperationException: 队列已关闭] C:\Dev\BookSleeve\BookSleeve\MessageQueue.cs:73 BookSleeve.RedisConnectionBase.ExecuteVoid(RedisMessage message, Boolean queueJump) 中的 BookSleeve.MessageQueue.Enqueue(RedisMessage item, Boolean highPri) C: \Dev\BookSleeve\BookSleeve\RedisConnectionBase.cs:794 ASP.welisten_booksleevetests_aspx.SaveDictionaryToRedis(Dictionary`2 字典) +173 ASP.welisten_booksleevetests_aspx.Page_Load(Object sender, EventArgs e) +67 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, 对象 o, 对象 t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
我尝试将waitForOpen参数设置为true和false
这是我要执行的代码:
private void SaveDictionaryToRedis(Dictionary<string, string> dictionary)
{
using (Mp.Step("Saving Data to Redis"))
{
using (RedisConfig.Conn)
{
RedisConfig.Conn.Strings.Set(DB, dictionary);
}
}
}