Signalr, использующий объединительную панель Redis, не передает сообщение - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть приложение. 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();
        }
    }
}

Однако, похоже, он не работает. Уведомления Pu sh больше не отправляются, и я попытался вручную подписаться на канал, используя redis-cli, и ничего не публикуется. Ошибок нет, и я попытался вручную ввести информацию о соединении в функцию UseStackExhangeRedis вместо использования RedisScaleoutConfiguration, как в демонстрационной версии, но это не помогло.

1 Ответ

0 голосов
/ 22 апреля 2020

В конце концов я нашел способ включить трассировку в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...