У нас есть служба SignalR, размещенная на Azure.
По техническим причинам нам важно поддерживать как можно более стабильную связь между клиентом и хостом. И что происходит, так это то, что с некоторыми случайными интервалами некоторые клиенты отключались. Мы знаем, что это не связано с подключением inte rnet на стороне клиента.
Итак, вопрос в том, как мы можем определить причину отключения. Наш концентратор SignalR реализует переопределения OnDisconnectedAsyn c. И этот метод имеет параметр «Exception ex c». К сожалению, каждый раз, когда он срабатывает, ex c всегда равен нулю (я надеялся найти там подробности отключения).
Дополнительные сведения: Мы используем следующие пакеты SignalR на стороне сервера: Microsoft.As pNet .SignalR (2.4.0) Microsoft. Azure .SignalR (1.0.5)
На стороне клиента мы используем «Microsoft.AspNetCore.SignalR.Client.Core» (1.1.0)
Также мы проверили и у нас достаточно ресурсов на Azure SignalR (единицы)
Вот журналы, когда пользователь отключается (происходит после OnDisconnectedAsyn c): 2020-03-15 11:38: 07.391 +00: 00 [Отладка] Microsoft.AspNetCore.SignalR.HubConnectionHandler: OnConnectedAsyn c окончание. 2020-03-15 11: 38: 07.391 +00: 00 [Отладка] Microsoft. Azure .SignalR.ServiceConnection: Отправка сообщения о закрытии соединения в службу для GFf8suySt2eMsOCLuYg0-wbb16618b1. 2020-03-15 11: 38: 07.391 +00: 00 [Debug] Microsoft.AspNetCore.Http.Connections.Client.Internal.WebSocketsTransport: получено сообщение от приложения. Размер полезной нагрузки: 36. 2020-03-15 11: 38: 07.393 +00: 00 [Debug] Microsoft.AspNetCore.Http.Connections.Client.Internal.WebSocketsTransport: Сообщение получено. Тип: Binary, размер: 37, EndOfMessage: True. 2020-03-15 11: 38: 07.393 +00: 00 [Отладка] Microsoft. Azure .SignalR.ServiceConnection: Получено 37 байт от службы 12aa875 c -a5b6-4842-8bc1-2d67e7ab30f6. 2020-03-15 11: 38: 07.393 +00: 00 [Отладка] Microsoft. Azure .SignalR.ServiceConnection: Соединение GFf8suySt2eMsOCLuYg0-wbb16618b1 завершено.