Веб-узлы SignalR 2 с ASP.NET Core на .NET Framework

У меня есть приложение ASP.NET Core, работающее на .NET Framework 4.6.2. Мне удалось запустить SignalR 2 с помощью промежуточного программного обеспечения owin. Проблема в том, что он использует серверные события вместо веб-сокетов. Есть ли какие-либо настройки, которые можно выполнить, чтобы использовать веб-сокеты? введите здесь описание изображения

В Startup.cs я звоню обоим app.UseWebSockets(); app.UseSignalR2() // пользовательский метод расширения отображает signalR в appbuilder

Если указать только транспорт webSockets, ошибок нет, но он не подключается.

Я использовал аналогичную настройку с использованием проекта ASP.NET MVC, и он работал, как ожидалось, это воспроизводится только при использовании ASP.NET Core на .NET Framework.

Я нашел несколько похожих сообщений, но мне не удалось запустить его с помощью веб-сокетов: Использование SignalR в приложении asp.net Core, ориентированном на полную .NET Framework


person Andrei S    schedule 31.08.2017    source источник


Ответы (1)


Похоже, здесь отсутствует метод UseWebSockets:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
        app.UseWebSockets();
}
person Camille Wintz    schedule 31.08.2017
comment
Вы используете IIS в качестве обратного прокси? Если да, вам также необходимо активировать на нем веб-сокеты. Также проверьте несовпадения http / https. - person Camille Wintz; 01.09.2017
comment
Я использую IIS, но поскольку он работает для приложения ASP.NET MVC, я предполагаю, что проблема не в IIS. - person Andrei S; 01.09.2017
comment
Включен ли у вас протокол WebSocket для IIS? Он находится в разделе «Возможности Windows» - ›IIS -› Службы WWW - ›Функции разработчика приложений. - person Joe Pontani; 01.09.2017
comment
Да, я включил это. Тем не менее, без изменений. - person Andrei S; 01.09.2017