【发布时间】:2015-11-28 00:34:29
【问题描述】:
一段时间以来,我一直在尝试在我的应用中配置 ASP.NET Redis Session State provider。多亏了这篇文章,我终于能够成功地直接连接到主服务器并设置/获取密钥:Can't connect to Redis server using ASP.NET Session State Provider
现在,我的下一个问题...让它与 Sentinel 配置一起使用。
我熟悉SENTINEL get-master-addr-by-name master-dev-sessionstate命令判断master。这个提供者有这个内置的吗?根据上面链接的博客文章中的 cmets(这也是我能找到的唯一文档),看来我应该能够使用 connectionString 属性来传递多个主机。不过,我不确定这些多台主机是否打算成为 Sentinel。
<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 运行。
编辑:我最近尝试将我的工作配置指向 Sentinel,但我收到“没有可用于服务此操作的连接:EVAL。”这使我相信该提供商没有 Sentinel 支持。谁能证实这一点?
【问题讨论】:
标签: c# asp.net session redis redis-sentinel