Не удается увидеть localhost из приложения UWP

Я работаю над приложением UWP на своем ноутбуке. На предыдущем ноутбуке с предварительным выпуском Windows 10 я смог получить свое приложение, чтобы увидеть мою службу веб-API на локальном хосте, но на этом ноутбуке, независимо от того, что я пытаюсь, я всегда получаю эту ошибку с помощью HTTP-клиента:

Не удалось установить соединение с сервером

var response = await client.GetAsync(BuildGetRequest()).AsTask(source.Token);

Если я укажу на мою опубликованную услугу на Azure, все будет хорошо. Вот что я пробовал:

  • Разрешенная петля локальной сети устанавливается в свойствах проекта Apps. Подтверждено, что имя пакета приложения проверено в утилите Exopption Loopback AppContainer в Fiddler.
  • Задайте Интернет (клиент), Интернет (клиент и сервер), возможности частной сети в Package.AppManifest
  • Пробовал вручную установку c:> checknetisolation loopbackexempt -a -n = из командной строки
  • UWP Включить петлю локальной сети
  • Полностью отключил брандмауэр в результате чистого отчаяния.
  • Запустите мой веб-API в полном объеме IIS, а не в IIS Express.

Ничто не имеет никакого значения.

Я заметил, что Im, имеющий аналогичную проблему в Edge, несмотря на то, что Local loop loopback имеет about:flags и несколько других предложений, которые я нашел по адресу:

Мой проект веб-API отлично работает в каждом браузере, кроме Edge, поэтому я предполагаю, что Edge является универсальным приложением, проблема связана. Когда я отлаживаю его в Edge, я получаю эту ошибку:

Не могу подключиться к прокси-серверу

Если я перейду к Settings и выключу ручной прокси-сервер, запустите его снова, я получаю:

Хм, мы не можем достичь этой страницы

Тем не менее, я заметил, что по какой-то причине параметр "Ручной прокси-сервер" постоянно включается во время последующих прогонов.

Может ли кто-нибудь предложить что-нибудь еще, что я мог бы попытаться заставить мое приложение UWP видеть мой сервис на локальном хосте?

Ответ 1

Это не ошибка, это функция, называемая сетевой изоляцией. Он был представлен в Windows 8 (приложения Metro назывались приложениями Windows Runtime).

По соображениям безопасности приложение UWP, установленное стандартным образом, не разрешает делать сетевые вызовы на устройстве, на котором оно установлено.

Подробнее здесь и здесь.

Эта функция может быть отключена в настройках отладки Visual Studio, также в статье " Как разрешить loopback для приложений Windows Runtime" говорится об использовании средства CheckNetIsolation Windows для включения loopback-доступа для каждого приложения:

CheckNetIsolation.exe LoopbackExempt -s

CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299

Существуют также инструменты графического интерфейса, такие как Enable Loopback Utility и Loopback Exemption Manager, которые упрощают эту задачу:

Enable Loopback Utility