Постараюсь вкратце рассказать:
Я хочу вызвать метод в хабе в веб-приложении из основной сборки в мое заявление. Причина в том, что у меня есть ряд приложений, которые в конечном итоге вызывают основные и инициирующие события (например, мобильный Интернет, сайт администратора, API и т. д.). Я хочу уведомлять пользователей настольного сайта о событиях по мере их возникновения с помощью SignalR.
Чтобы увеличить это число, я создал решение из 4 проектов. Основной проект с прокси-сервером. Веб-приложение с концентратором. Еще одно веб-приложение без хаба. И, наконец, консольное приложение.
Если я вызываю ядро из консольного приложения и пытаюсь отправить сообщение клиентам-концентраторам с помощью прокси-сервера, все работает отлично. Однако, если я попытаюсь вызвать ядро и использовать прокси из одного из веб-приложений, выполнение зависнет при вызове подключения. Start ():
var connection = new HubConnection("...");
var hub = connection.CreateProxy("Spike.Hub");
connection.Start().Wait();
Является ли материал SignalR.Client не предназначен для использования из домен приложения веб-приложения? Почему это работает должным образом в консольном приложении, но не в веб-приложении?
Обновление: я подключил свой шип к источнику SignalR, и при запуске из одного из веб-приложений выполнение зависает на строке 130 SignalR.Client. .Связь. _syncContext для такого соединения является экземпляром AspNetSynchronizationContext, и при вызове его метода Post() все останавливается.