【问题标题】:ASP.NET Framework 4.6.2 SignalR and Redis backplane not connectingASP.NET Framework 4.6.2 SignalR 和 Redis 背板未连接
【发布时间】:2021-04-29 20:51:14
【问题描述】:

我们有一个最近升级到 .NET 4.6.2 的 ASP.NET Forms 应用程序。我们将 StackExchange.Redis.StrongNameMicrosoft.AspNet.SignalR 一起使用,但最近移至 StackExchange.Redis。在 .NET 4.6.2 升级之前,一切都在使用 Redis,但自从更改后,Redis 似乎没有建立连接。

我们在运行相同应用程序代码的 ARR 场后面设置了两个节点。

我们的 Startup.cs 文件

using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(MySampleProject.SignalR.Startup))]
namespace MySampleProject.SignalR
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            GlobalHost.DependencyResolver.UseStackExchangeRedis(RedisIP, 6379, RedisPassword, "MySampleProject");
            app.MapSignalR("/signalr", new HubConfiguration
            {
                EnableJavaScriptProxies = true,
                EnableDetailedErrors = true,
                EnableJSONP = true
        });
        }
    }
}

我们的 Startup.cs 文件中唯一改变的是使用 StackExchange.Redis.StrongName 包中的 UseRedis 中的 UseStackExchangeRedis

我们在 CentOS 7 机器上安装了 Redis 6.0.10。

如果我们恢复使用 StackExchange.Redis.StrongName,一切都会恢复正常。

如果我们注释掉

GlobalHost.DependencyResolver.UseStackExchangeRedis(RedisIP, 6379, RedisPassword, "MySampleProject");

SignalR 有效,但消息(显然)仅在同一服务器上传递。

我们按照https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis 的说明进行操作。

是否需要进行其他配置更改?

【问题讨论】:

    标签: c# asp.net redis signalr stackexchange.redis


    【解决方案1】:

    我发现另一个帖子遇到了类似的问题:Signalr using Redis backplane not propagating message

    解决方案是在 Signalr 中启用跟踪:https://docs.microsoft.com/en-us/aspnet/signalr/overview/testing-and-debugging/enabling-signalr-tracing

    发现“连接到 Redis 时出错 - System.InvalidOperationException:无法加载 System.IO.Piplines 的程序集”

    以下内容已添加到 Web.config

          <dependentAssembly>
            <assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.1" />
          </dependentAssembly>
    

    它解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 2021-07-13
      • 2020-04-30
      • 1970-01-01
      • 2022-07-29
      • 2017-01-12
      • 1970-01-01
      • 2018-07-22
      • 2015-12-14
      相关资源
      最近更新 更多