Ошибка рукопожатия соединения при использовании AspNetCore.SignalR в ABP под IIS - PullRequest
0 голосов
/ 31 мая 2018

Моя среда

  • .NetCore SDk - 2.1.300
  • Microsoft.AspNetCore.SignalR - 1.0.0
  • IIS - Версия 10.0.12393.0 в окнеServer 2016

Пример кода для AspNetCore.SignalR

  • Я следую инструкциям по ссылке https://docs.microsoft.com/en-us/aspnet/core/signalr/get-started?view=aspnetcore-2.1&tabs=visual-studio, чтобы завершить пример кода чата AspNetCore.SignalR.
  • Я могу успешно запустить его в Visual Studio.
  • После этого я публикую его на своем сервере (оконный сервер 2016, IIS имеет функцию websocket), и он также отлично работает .Это означает, что моя серверная среда хорошо поддерживает AspNetCore.SignalR.

Abp для AspNetCore.SignalR

  • Я загружаю код шаблона ABP с веб-сайта ABP
  • Обновление .net core sdk до .net core 2.1
  • Обновление пакетов nuget
  • Выполните мои действия, описанные выше, чтобы добавить образец кода чата AspNetCore.SignalR в проект.
  • Успешно запустите его в Visual Studio

Проблема в том, что, когда я публикую его на сервере (так же, как мой сервер выше), и запускаю его, он выдает ошибку - AspNetCore.SignalR.HubConnectionContext - Сбой установления соединения.

Я исследовал это, но не получил никакого решения.не могли бы вы помочь разобраться в этом, в чем проблема?

Я перенес свой проект в github: https://github.com/lcyhjx/AbpExample, вы можете вытащить и запустить его ( Просто запустите AbpExample.Web.Host).Он отлично работает в Visual Studio, но не работает в IIS.

Сведения об ошибке:

  • Информация: нормализация '/ chatHub' к 'http://localhost:6011/chatHub'.
  • Информация: WebSocket подключен к ws: // localhost: 6011 / chatHub? Id = 2zix_nPHODwLEv2p_4VCAw '
  • Ошибка: соединение разорвано с ошибкой' Ошибка: сервер вернул ошибку квитирования: во время соединения произошла непредвиденная ошибкарукопожатие. '.

enter image description here

1 Ответ

0 голосов
/ 01 июня 2018

Я обратился к проблеме.Это проблема кода, в моем коде я установил

HandshakeTimeout = TimeSpan.MaxValue;

Если я прокомментирую приведенный выше код, то все отлично работает как в VS, так и в IIS.

...