SignalR на WinForms - не может подключиться ни к какому адресу, кроме 127.0.0.1 - PullRequest
1 голос
/ 24 января 2020

Я просмотрел несколько статей / источников, но ни одна из них не помогла мне.

У меня есть эта странная проблема, когда я могу подключиться к своему серверу SignalR (Self-Hosted, тот же компьютер), если Сам сервер настроен для работы на http://127.0.0.1:8765, и Клиент указывает на тот же адрес. Однако, если я изменяю Сервер для работы на любом IP-адресе, таком как http://*:8765, и Клиент указывает его на мой IP-адрес или имя компьютера, скажем: http://192.168.0.1:8765 или http://MyLocalPC:8765, клиент выдает исключение после await _hubConnection.Start() с сообщением : No connection could be made because the target machine actively refused it 192.168.0.1:8765.

Я попробовал описанные ниже шаги, чтобы немного поэкспериментировать, но ни один из них на самом деле не помог:

  • изменил порт с: 8765 на любой порт, о котором я могу думать ( который явно не занят), не работал.
  • изменился из одной сети в другую, не помог.
  • отключил брандмауэр на сервере и клиентском компьютере, нет.
  • попытался запустить Клиент на другом компьютере, то же сообщение об ошибке.

, чтобы показать фрагмент кода, см. Ниже:

Сервер (_signalR - это IDisposable объект & В _serverURI указано http://____:__):

enter image description here enter image description here

Клиент (_hubConnection & _hostAddress не требует пояснений) : enter image description here

Я использую C# 7.0 с Microsoft.AspNet.SignalR.Client 2.4.1.0 и Microsoft.AspNet.SignalR.Core 2.4.1.0

1 Ответ

1 голос
/ 27 января 2020

Я только что понял, что это потому, что Visual Studio не работал с правами администратора . SignalR требовал административных прав для возможности запуска своего Сервера на IP-адресах, отличных от localhost или 127.0.0.1. Я не смог полностью понять это, так как я переключаю ноутбуки около 3 недель и забыл настроить запуск Visual Studio в режиме администратора.

Причина, по которой я также не смог найти никаких ошибок, связанных с этим, для некоторых причина в том, что в моем коде есть ошибка, в которой я подавил ошибку исключения и по-прежнему отображал сообщение, как будто оно работает правильно.

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