【问题标题】:How to configure RedisSessionStateProvider to use Redis sentinel?如何配置 RedisSessionStateProvider 使用 Redis sentinel?
【发布时间】:2017-12-10 12:17:30
【问题描述】:

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

下一步,我想通过添加从节点和哨兵节点将我的 Redis 存储更改为高可用性。问题(1):RedisSessionStateProvider 是否支持,(2)如果支持,如何配置 RedisSessionStateProvider 引用哨兵节点。

<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>

【问题讨论】:

    标签: asp.net redis session-state stackexchange.redis


    【解决方案1】:

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

    希望有帮助:)

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多