SignalR не может подключиться при использовании служебной шины Azure

У меня возникают случайные проблемы с подключением SignalR при использовании служебной шины Windows Azure в качестве объединительной платы. Проблема отладки заключается в том, что это происходит случайным образом (без каких-либо изменений кода), но когда это действительно происходит, требуется некоторое время, прежде чем оно исчезнет. Обычно я пытаюсь закрыть визуальную студию, перезагрузить, переключиться на longpolling, закрыть iis express или что-то еще и не могу точно определить, что, кажется, исправляет. Возможно, проблема в самой лазурной службе.

Я настраиваю журналы, и вот что возвращается: Информация о SignalR.ServiceBusMessageBus: 0: Подписка на 5 тем в служебной шине ... Ошибка SignalR.ServiceBusMessageBus: 0: Не удалось создать подписку или тему служебной шины : Поставщик токенов не смог предоставить токен безопасности при доступе к 'https://x-sb.accesscontrol.windows.net/WRAPv0.9/ ». Поставщик токенов вернул сообщение: "Не удалось разрешить удаленное имя:" x-sb.accesscontrol.windows.net ".

Я читал другие сообщения с той же ошибкой, но, похоже, они не связаны.

Моя конфигурация SignalR выглядит так:

GlobalHost.DependencyResolver.UseServiceBus(connectionString, "MyTopic");
var userIdProvider = new UserIdProvider();
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => userIdProvider);
app.MapSignalR();

Когда я переключаюсь на longPolling, он временно работает, но затем снова начинает давать сбой. SignalR начинает игнорировать параметр longPolling и все равно пытается использовать веб-сокеты.

Как только я удаляю UseServiceBus, все работает правильно, но с ним у меня возникают всевозможные проблемы: либо он не подключается, либо пытается использовать веб-сокеты, даже если указан longPolling (что приводит к сбою).


person KingOfHypocrites    schedule 14.05.2014    source источник


Ответы (1)


Проверить конфигурацию.

string connectionString = "(ваша строка подключения)"; var config = new ServiceBusScaleoutConfiguration (connectionString, "YourAppName") {TopicCount = 3, MaxQueueLength = 50}; GlobalHost.DependencyResolver.UseServiceBus (конфигурация);

http://www.asp.net/signalr/overview/performance/signalr-performance#scaleout_metrics

person Rıfat Erdem Sahin    schedule 21.10.2014