Клиент SignalR .NET: не удается запустить подключение из домена приложения веб-приложения

Постараюсь коротко рассказать:

Я хочу вызвать метод в концентраторе в веб-приложении из основной сборки в моем приложении. Причина в том, что у меня есть ряд приложений, которые в конечном итоге вызывают основные и инициирующие события (например, мобильный Интернет, сайт администратора, API и т. д.). Я хочу уведомлять пользователей настольного сайта о событиях по мере их возникновения с помощью SignalR.

Чтобы увеличить это, я создал решение с 4 проектами. Основной проект с прокси-сервером. Веб-приложение с концентратором. Еще одно веб-приложение без хаба. И, наконец, консольное приложение.

Если я вызову ядро ​​​​из консольного приложения и попытаюсь отправить сообщение клиентам-концентраторам с помощью прокси-сервера, все будет отлично работать. Однако, если я попытаюсь вызвать ядро ​​​​и использовать прокси из одного из веб-приложений, выполнение зависнет при вызове connection.Start():

var connection = new HubConnection("...");
var hub = connection.CreateProxy("Spike.Hub");
connection.Start().Wait();

Разве SignalR.Client не предназначен для использования из домена приложения веб-приложения? Почему в консольном приложении это работает, а в веб-приложении — нет?


Обновление: я подключил свой шип к источнику SignalR, и при запуске из одного из веб-приложений выполнение зависает в строке 130 SignalR.Client.Connection. _syncContext для такого соединения является экземпляром AspNetSynchronizationContext, и при вызове его метода Post() все останавливается.


person spot    schedule 02.03.2012    source источник


Ответы (1)


В SignalR.Client есть ошибка, и вы ее нашли :)

person davidfowl    schedule 03.03.2012
comment
Ура мне :S -- Продолжу любое обсуждение в выпуске github. github.com/SignalR/SignalR/issues/221#issuecomment-4300487. - person spot; 03.03.2012