我有一个演示ASP.NET应用程序,会话存储配置为使用Microsoft.Web.Redis.RedisSessionStateProvider nuget(下面的配置)使用单个Redis主节点。
作为下一步,我想通过添加slave和sentinel节点将我的Redis存储更改为高可用性。问题(1):RedisSessionStateProvider是否支持这个,以及(2)如果是,我如何配置RedisSessionStateProvider来引用sentinel节点。
<sessionState mode="Custom" customProvider="RedisProvider" timeout="240" cookieless="UseCookies" cookieName="ASP.NET_SessionId" useHostingIdentity="true">
<providers>
<add name="RedisProvider"
type="Microsoft.Web.Redis.RedisSessionStateProvider, Microsoft.Web.RedisSessionStateProvider"
host="127.0.0.1"
port="6379"
accessKey=""
ssl="false" />
</providers>
</sessionState>
答案 0 :(得分:1)
要快速回答您的问题...从提供程序配置中删除主机、端口、访问密钥和 ssl 属性并添加 connectionString。为您的案例输入正确的连接字符串信息:即 - “192.168.1.10:6379,192.168.1.11:6379,192.168.1.12:6379,ssl=false,password=My_Super_Secret_Password”。由于您使用的是集群配置,因此所有节点密码都必须相同才能正常工作。您还需要提供 applicationName 属性,如 applicationName="TestApp",因此您的 web.config 应如下所示:
<sessionState mode="Custom" cookieName="_web.ss" customProvider="RedisSessionStateProvider" cookieless="false" timeout="10080">
<providers>
<clear />
<add name="RedisSessionStateProvider"
type="Microsoft.Web.Redis.RedisSessionStateProvider"
applicationName="TestApp"
connectionString="192.168.1.10:6379,192.168.1.11:6379,192.168.1.12:6379,ssl=false,password=My_Super_Secret_Password" />
</providers>
</sessionState>
希望这有助于:)