Подключение службы Azure SignalR не активно - PullRequest
0 голосов
/ 04 января 2019

Я обновил пакеты наших сигналов с версии 2.4.0 и добавил RunAzureSignalR вместо RunSignalR. Добавлен этот код в де Startup.cs

app.Map("/signalr", map =>
{
    var hubConfiguration = new HubConfiguration
    {
        EnableDetailedErrors = true
    };

    map.RunAzureSignalR(typeof(Startup).FullName, hubConfiguration, options =>
    {
        options.ConnectionString = AppApiSettings.SignalRServiceConnectionString;
    });
});

Но когда я пытаюсь отправить сообщение в концентратор, я получаю исключение The connection is not active, data cannot be sent to the service.. Не могу найти причину, по которой это может случиться, или почему служба не будет работать.

Когда я использую RunSignalR (самостоятельно), все работает отлично.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 января 2019

Оказывается, служба Azure поддерживает только TLS1.2 из соображений безопасности. Пожалуйста, добавьте следующий код для запуска:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Подсказка для этого решения была найдена в билете github: https://github.com/Azure/azure-signalr/issues/279

«Сервер недоступен» означает, что у сервера приложений возникли проблемы с подключением к службе Azure. Вы можете включить трассировку со стороны сервера приложений, выполнив следующие действия, чтобы проверить, нет ли ошибок.

GlobalHost.TraceManager.Switch.Level = SourceLevels.Information;

Образец здесь: https://github.com/Azure/azure-signalr/blob/dev/samples/AspNet.ChatSample/AspNet.ChatSample.SelfHostServer/Startup.cs#L19

Если вы выполняете локальную отладку на стороне сервера, вы можете также снять флажок «Просто мой код» и прервать его, когда выдает любое исключение CLR:

Disable just my code enter image description here System.Security.Authentication.AuthenticationException: «Сбой вызова SSPI, см. Внутреннее исключение». - (внутренняя) "Запрошенная функция не поддерживается"

System.ObjectDisposedException: 'Безопасный дескриптор закрыт'

System.Net.WebException: 'Запрос был прерван: не удалось создать безопасный канал SSL / TLS.'

System.Net.WebSockets.WebSocketException: «Невозможно подключиться к удаленному серверу» - (внутренняя) WebException: запрос был прерван: не удалось создать безопасный канал SSL / TLS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...