Asp.net 如何配置RedisSessionStateProvider以使用Redis sentinel?

Asp.net 如何配置RedisSessionStateProvider以使用Redis sentinel?,asp.net,redis,session-state,stackexchange.redis,Asp.net,Redis,Session State,Stackexchange.redis,我有一个演示ASP.NET应用程序,其中会话存储配置为使用nuget(下面的配置)使用单个Redis主节点 作为下一步,我想通过添加从节点和哨兵节点,将我的Redis存储更改为高可用性。问题(1):RedisessionStateProvider是否支持此功能,以及(2)如果支持,如何配置RedisessionStateProvider以引用sentinel节点 <sessionState mode="Custom" customProvider="RedisProvider" timeo

我有一个演示ASP.NET应用程序,其中会话存储配置为使用nuget(下面的配置)使用单个Redis主节点

作为下一步,我想通过添加从节点和哨兵节点,将我的Redis存储更改为高可用性。问题(1):RedisessionStateProvider是否支持此功能,以及(2)如果支持,如何配置RedisessionStateProvider以引用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>

要快速回答您的问题。。。从提供程序配置中删除主机、端口、accessKey和ssl属性,并添加connectionString。为您的案例输入正确的连接字符串信息:“192.168.1.10:6379192.168.1.11:6379192.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>

希望这有帮助:)