Microsoft.Web.RedisSessionStateProvider指定多个IP

时间:2018-11-26 10:04:19

标签: c# asp.net redis session-state

我正在使用Microsoft.Web.RedisSessionStateProvider在Redis上存储会话信息。
配置文件在下面

<!--
      <add name="MySessionStateStore" 
        host = "127.0.0.1" [String]
        port = "" [number]
        accessKey = "" [String]
        ssl = "false" [true|false]
        throwOnError = "true" [true|false]
        retryTimeoutInMilliseconds = "5000" [number]
        databaseId = "0" [number]
        applicationName = "" [String]
        connectionTimeoutInMilliseconds = "5000" [number]
        operationTimeoutInMilliseconds = "1000" [number]
        connectionString = "<Valid StackExchange.Redis connection string>" [String]
        loggingClassName = "<Assembly qualified class name that contains logging method specified below>" [String]
        loggingMethodName = "<Logging method should be defined in loggingClass. It should be public, static, does not take any parameters and should have a return type of System.IO.TextWriter.>" [String]
      />

我能够读取集群上的写会话信息。

我的群集具有多个IP 3节点群集,其中一个主节点和另一个子节点。
我无法在Web配置文件中指定其他IP来处理故障转移情况。

假设我有一个群集,该群集具有172.29.10.11、172.29.10.12、172.29.10.13,其中172.29.10.11是我的主要节点,所以我将此IP放在了web.config文件中

host = "172.29.10.11"

现在,如果发生故障,.12或.13都将成为我的主要节点。
我该如何处理故障转移情况。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。如果有人遇到类似问题,我会在这里发布。

有两个参数可以指定IP:

  1. 主机
  2. connectionString

我使用连接字符串,需要指定所有属性值,例如

<add name="MySessionStateStore" applicationName = "testapp" 
      type="Microsoft.Web.Redis.RedisSessionStateProvider" 
connectionString ="172.29.10.11:6379,172.29.10.12:6379,172.29.10.13:6379,ssl=false,abortConnect=False" />