我创建了一个.net核心控制台应用程序,并包含了ServiceStack.Redis.Core v1.0.23 nuget包。我还在本地运行redis sentinel设置。当我尝试使用sentinel连接方法连接到redis时,应用程序挂起在sentinel.start()上。没有返回错误。
如果我使用标准的Windows C#项目使用Windows控制台应用程序创建相同的应用程序并包含ServiceStack.Redis v4.5.4 nuget包,则相同的连接代码可以正常工作。
我还设法使用单个redis实例从.net核心应用程序连接,但没有使用sentinel。
是否有其他人经历过这种情况或知道如何在.net核心应用程序中使用它?
用于尝试连接的代码:
var sentinelHosts = new[] { "127.0.0.1:26380", "127.0.0.1:26381", "127.0.0.1:26382" };
var sentinel = new RedisSentinel(sentinelHosts, masterName: "mymaster");
var clientManager = sentinel.Start();
答案 0 :(得分:1)
这是一个错误,应该使用this commit修复。 sentinel.Start()
调用RedisPubSubServer
来阻止.NET Core上的当前线程,这就是控件不返回并挂起的原因。此更改将在具有ServiceStack.Redis.Core v1.0.25软件包的nuget上提供。