Не удается увидеть 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]()