【问题标题】:SignalR cannot connect to Azure Redis on SSLSignalR 无法通过 SSL 连接到 Azure Redis
【发布时间】:2015-06-16 16:35:50
【问题描述】:

我目前在 Azure 上托管我的 redis 缓存服务器,并让 signalR 依赖它作为使用以下内容的主干...

GlobalHost.DependencyResolver.UseRedis("Server",port,"password","eventKey");

这可以在端口 6379(非 SSL)上找到,但是当我尝试连接到 Azure Redis 服务器的 SSL 端口 (6380) 时,我的聊天应用程序中断,并且集线器从未启动。这个问题的原因可能是什么?还是我做错了什么?

这是我浏览器中 /signalr/connect 上出现的错误 网络::ERR_CONNECTION_RESET

【问题讨论】:

    标签: redis signalr signalr-hub signalr-backplane azure-redis-cache


    【解决方案1】:

    你可以试试这个: GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "YourServer"));

    连接字符串类似于:

    connectionString="yourNameHere.cache.windows.net,ssl=true,password=YourPasswordKey"

    确保您使用的是使用 StackExchange.Redis 构建的 SignalR(最新版本是 gratest ;)

    【讨论】:

    • 不错!实际上,那天我确实使用您上面概述的相同方法让它工作。升级了所有 SignalR 包,并且可以直接使用连接字符串!以下帖子使我找到了该解决方案:github.com/SignalR/SignalR/issues/3383
    • 您可能想在连接字符串中添加一个端口号。例如"yourServerNameHere.cache.windows.net:yourPortNumberHere,ssl=true,password=YourPasswordKey"
    【解决方案2】:

    我将 signalr 核心库升级到 2.2.3.0 版并使用以下语法,就像一个魅力。

    var redisServer = ConfigurationManager.AppSettings[Constants.RedisServer].ToString();
    
    var redisServerPassword = ConfigurationManager.AppSettings[Constants.RedisServerPassword].ToString();
    
    var connectionString = $"{redisServer},password={redisServerPassword},ssl=True,abortConnect=False";
    GlobalHost.DependencyResolver.UseRedis(new RedisScaleoutConfiguration(connectionString, "APIIdentifierString"));
    

    【讨论】:

      【解决方案3】:

      如果其他人遇到此问题,Azure 门户提供的默认连接字符串似乎包含 abortConnect=False。 一旦我删除了那部分,事情就开始为我工作了。

      【讨论】:

      • 仅供参考,我们在连接字符串中使用 abortConnect=False 并且它可以工作。
      猜你喜欢
      • 2023-03-12
      • 2021-03-08
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 2014-07-04
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多