Chr*_*tka 5 c# asp.net session redis redis-sentinel
我一直试图在我的应用程序中配置ASP.NET Redis会话状态提供程序一段时间.由于这篇文章,我终于能够成功连接到master和set/get键:无法使用ASP.NET Session State Provider连接到Redis服务器
现在,我的下一个问题是...使用Sentinel配置.
我熟悉SENTINEL get-master-addr-by-name master-dev-sessionstate命令来确定主人.这个提供商是否内置了此功能?基于上面链接的博客文章的评论(这也是我可以找到的唯一文档),似乎我应该能够使用connectionString属性来传递多个主机.不过,我不确定这些多个主机是否打算成为Sentinels.
<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>
Run Code Online (Sandbox Code Playgroud)
像这样配置我的连接时,我收到此错误:
附加信息:无法连接到redis服务器; 要创建断开连接的多路复用器,请禁用AbortOnConnectFail.
即使我的连接字符串中只有主IP,我也会收到此错误.如上所示,我的连接字符串中有abortConnect ="false",这就是它指示我做的事情.连接字符串中存在或不存在相同的错误.
考虑到这一点,这是我的问题......
编辑:我应该注意,这是一个自定义的本地Redis安装.我们没有通过Azure运行.
编辑:我最近试图将我的工作配置指向Sentinel,我收到"没有连接可用于服务此操作:EVAL." 这让我相信这个提供商没有Sentinel支持.谁能证实这一点?
小智 0
这是安装 nuget 包时通常添加到 web.config 中的内容;
sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<!--
<add name="MySessionStateStore"
host = "127.0.0.1" [String]
port = "" [number]
accessKey = "" [String]
ssl = "false" [true|false]
throwOnError = "true" [true|false]
retryTimeoutInMilliseconds = "0" [number]
databaseId = "0" [number]
applicationName = "" [String]
connectionTimeoutInMilliseconds = "5000" [number]
operationTimeoutInMilliseconds = "5000" [number]
/>
-->
<add name="MySessionStateStore"
type="Microsoft.Web.Redis.RedisSessionStateProvider"
host="127.0.0.1"
accessKey=""
ssl="false" />
</providers>
</sessionState>
Run Code Online (Sandbox Code Playgroud)
这是我们与 Azure 缓存服务器一起使用的一个。
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider"
type="Microsoft.Web.Redis.RedisSessionStateProvider"
port="6380"
host="xxxxxxxx.redis.cache.windows.net"
accessKey="vCG........We0n="
ssl="true"
connectionTimeoutInMilliseconds = "5000"
operationTimeoutInMilliseconds = "1000"
retryTimeoutInMilliseconds="3000" />
</providers>
</sessionState>
Run Code Online (Sandbox Code Playgroud)
我们将重试超时设置为 3 秒,操作超时设置为 1 秒,这样在放弃之前允许尝试 3 次 (1000/3000=3)。
| 归档时间: |
|
| 查看次数: |
9115 次 |
| 最近记录: |