Доступ к локальному хосту (Xamarin)

Я хочу реализовать чат в своем приложении для Android с помощью SignalR, и я загружаю этот пример с asp.net: https://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr Но я не может получить к нему доступ через localhost через HubConnection. Я попытался использовать свой IP-адрес и номер порта, но он не работает. У кого-нибудь есть опыт с этим?

Спасибо!

1 ответ

Решение

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

Во-первых, как вы уже поняли, клиент должен подключаться к вашей машине по ip, а не по localhost. Что-то вроде http://x.x.x.x:port/signalr

Затем вам нужно убедиться, что ваш компьютер доступен с мобильного телефона или эмулятора: откройте браузер в телефоне и введите известный адрес, например http://x.x.x.x:port/somethingThatExists,

Если этот URL недоступен:

  1. Попробуйте отключить брандмауэр
  2. Откройте PowerShell на машине с IIS-Express и запустите это: netsh http add urlacl url=http://{your server ip}:{port}/ user=everyone, (если ваш системный язык не английский, например: испанский, замените "все" на "todos")

  3. Открыть файл applicationhost.config в вашем каталоге решения Solution/.vs/config/applicationhost.config и найдите узел приложения xml. Что-то вроде <site name="YourAppName" id="1">...</site>, Вы увидите localhost привязка по умолчанию. Добавьте новый с фактическим IP: <binding protocol="http" bindinginformation="*:port:x.x.x.x"></binding> (убедитесь, что IP / порт правильный. То есть: *:57457:192.168.0.57)

  4. Перезапустите IIS Express и повторите попытку (перезагрузка системы не требуется)

Другие вопросы по тегам