一段时间以来,我一直在尝试在我的应用程序中配置ASP.NET Redis 会话状态提供程序。由于这篇文章,我终于能够成功地直接连接到主服务器并设置/获取密钥:无法使用 ASP.NET 会话状态提供程序连接到 Redis 服务器
现在,我的下一个问题......让它与 Sentinel 配置一起使用。
我熟悉的SENTINEL get-master-addr-by-name master-dev-sessionstate
命令确定主人。这个提供者有这个内置的吗?根据上面链接的博客文章的评论(这也是我能找到的唯一文档),看来我应该能够使用 connectionString 属性来传递多个主机。不过,我不确定这些多台主机是否打算成为哨兵。
<connectionStrings>
<add name="RedisConnection" connectionString="1.2.3.4:5,6.7.8.9:10,abortConnect=false,ssl=false,password=XXXXXX,operationTimeoutInMilliseconds=5000"/>
</connectionStrings>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<clear/>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="RedisConnection"/>
</providers>
</sessionState>
像这样配置我的连接时,我收到此错误:
附加信息:无法连接到 redis 服务器;要创建断开连接的多路复用器,请禁用 AbortOnConnectFail。
即使我的连接字符串中只有主 IP,我也会收到此错误。正如您在上面看到的,我的连接字符串中有 abortConnect="false",这是它指示我执行的操作。无论连接字符串中是否存在此错误,都会发生相同的错误。
考虑到这一点,这是我的问题......
- 此提供程序是否支持 Sentinel 配置?
- 如果是,连接字符串的正确格式是什么?
- 有没有人为此提供任何其他好的文档资源?除了该博客文章之外,我什至无法在 Microsoft 的网站上找到任何内容。
编辑:我应该注意,这是一个自定义的本地 Redis 安装。我们没有通过 Azure 运行。
编辑:我最近试图将我的工作配置指向一个哨兵,我收到“没有可用的连接来服务这个操作:EVAL。” 这使我相信该提供商没有 Sentinel 支持。谁能证实这一点?