使用 Redis 背板的 Signalr 不传播消息
Signalr using Redis backplane not propagating message
我有一个 .net 4.5 MVC 应用程序,我最近将其移至 AWS,因此我们需要为我们的 Signalr 实现添加一个背板。我已按照 https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis 中列出的步骤进行操作。我已经安装了 nuget 包,我当前的配置如下所示:
[assembly: OwinStartup(typeof(SignalrBootstrapper))]
namespace app
{
public class SignalrBootstrapper
{
public void Configuration(IAppBuilder app)
{
var scaleoutConfig = new RedisScaleoutConfiguration(ConnectionStrings.Redis, "appSignalrBackplane");
GlobalHost.DependencyResolver.UseStackExchangeRedis(scaleoutConfig);
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
但是,它似乎不起作用。根本不再发送推送通知,我尝试使用 redis-cli 手动订阅频道,但没有发布任何内容。没有错误,我尝试手动将连接详细信息输入 UseStackExhangeRedis
函数,而不是像演示链接中那样使用 RedisScaleoutConfiguration
,但它没有帮助。
最后,我找到了一种在 Signalr 中启用跟踪的方法:
https://docs.microsoft.com/en-us/aspnet/signalr/overview/testing-and-debugging/enabling-signalr-tracing
使用跟踪,我发现加载 dll Error connecting to Redis - System.InvalidOperationException: The assembly for System.Numerics.Vectors could not be loaded
时出错,所以我添加了一个指向 web.config 的重定向并解决了问题
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
我有一个 .net 4.5 MVC 应用程序,我最近将其移至 AWS,因此我们需要为我们的 Signalr 实现添加一个背板。我已按照 https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis 中列出的步骤进行操作。我已经安装了 nuget 包,我当前的配置如下所示:
[assembly: OwinStartup(typeof(SignalrBootstrapper))]
namespace app
{
public class SignalrBootstrapper
{
public void Configuration(IAppBuilder app)
{
var scaleoutConfig = new RedisScaleoutConfiguration(ConnectionStrings.Redis, "appSignalrBackplane");
GlobalHost.DependencyResolver.UseStackExchangeRedis(scaleoutConfig);
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
但是,它似乎不起作用。根本不再发送推送通知,我尝试使用 redis-cli 手动订阅频道,但没有发布任何内容。没有错误,我尝试手动将连接详细信息输入 UseStackExhangeRedis
函数,而不是像演示链接中那样使用 RedisScaleoutConfiguration
,但它没有帮助。
最后,我找到了一种在 Signalr 中启用跟踪的方法: https://docs.microsoft.com/en-us/aspnet/signalr/overview/testing-and-debugging/enabling-signalr-tracing
使用跟踪,我发现加载 dll Error connecting to Redis - System.InvalidOperationException: The assembly for System.Numerics.Vectors could not be loaded
时出错,所以我添加了一个指向 web.config 的重定向并解决了问题
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>