СигналР не подключается после обновления до dotNet6

#.net #xamarin #signalr #.net-6.0

Вопрос:

Я обновил сервер до .NET 6 и сохранил старые классы программ и запуска без изменений, и все работает нормально, но SignalR. После обновления клиент xamarin отказывается подключаться к концентратору, он остается в состоянии подключения.

Нужно ли мне вносить какие-либо изменения в SignalR на стороне сервера или проблема в другом месте?

 Namespace Hubs {  public class NotifyHub: Hub  {   public override async Task OnConnectedAsync()  {  await base.OnConnectedAsync();  }  }  

клиент xamarin:

 namespace Clients {  class NotifyHubClient : INotifyHubClient  {  IDocumentService _ds;  private HubConnection hubConnection;   public async Task Connect()  {  if (hubConnection == null || hubConnection.State   == HubConnectionState.Disconnected)  {  InitConnection();  await hubConnection.StartAsync();  }  }   private void InitConnection()  {  _ds = ContainerLocator.Container.Resolvelt;IDocumentServicegt;();  hubConnection = new HubConnectionBuilder()  .WithUrl("https://10.0.0.189:9001/hobosoft/notifier", options =gt; {  options.HttpMessageHandlerFactory = (message) =gt;  {  if (message is HttpClientHandler clientHandler)  clientHandler.ServerCertificateCustomValidationCallback   =(sender, certificate, chain, sslPolicyErrors)   =gt; { return true; };  return message;  };  })  .WithAutomaticReconnect()  .Build();  }  

Комментарии:

1. СигналР работает. Невозможно догадаться, почему ваш проект не работает, хотя и без какого-либо кода. С какой версии .NET Core вы обновились? Как вы настроили SignalR ?

2. Если сигнал не сработал. Сервер Blazor тоже не работал бы. Сервер Blazor отправляет обновления пользовательского интерфейса в очень небольшую веб-сборку, запущенную в браузере, для их визуализации. Если бы SignalR не работал, ни одно серверное приложение Blazor также не работало бы

3. @PanagiotisKanavos Я обновлял с .NET 5, мой код загружен есть конечные точки. MapHublt;NotifyHubgt;(«/hobosoft/уведомитель»); и услуги. AddSignalR(); в классе запуска

4. Опубликуйте свой код в вопросе. Сигнал работает. Я использую его на веб-сайте .NET 6 в течение года для отправки уведомлений клиентам браузера (я начал с .NET 6 Preview 1). Вы проверили журналы сервера? Есть ли какие-либо ошибки? Пробовал использовать Fiddler или аналогичный отладочный прокси, такой как Чарльз, чтобы посмотреть, что происходит между клиентом и сервером?

5. Создайте минимальное консольное приложение для тестирования клиента. Или, может быть, модульный тест. Прямо сейчас вы пытаетесь протестировать слишком много вещей, и даже ваш код содержит некоторые крайне подозрительные вещи: ServerCertificateCustomValidationCallback ????????? Если у вас возникли проблемы с сертификатами, отключение проверки их не исправит. Это означает только, что они укусят тебя, когда …. вы пытаетесь позвонить. Это также означает, что HTTPS по существу отключен. Вместо отключения проверки во время тестирования доверяйте сертификату разработки на своем компьютере разработчика

Ответ №1:

Итак, я нашел, в чем проблема. У VS2022 есть проблема с xamarin SignalR, возвращение к VS2019 решило проблему.

Таким образом, это означает, что я пока не могу обновить сервер до .NET 6…