Не удается подключиться к локальному хосту в приложении Windows Store

Поскольку я читаю по всему интернету, Microsoft блокирует возможность прослушивать и получать трафик на localhost (127.0.0.1) для любого порта. Я хочу для разработки purposus для локального тестирования моих приложений 2 сервера / клиента. Я следовал инструкции здесь: http://msdn.microsoft.com/en-us/library/windows/apps/hh780593.aspx

но это не работает. когда я использую опцию отладки, я получаю:

Состояние сетевых возможностей

InternetClient                Not Used and Insecure
InternetClientServer          Not Used and Insecure
PrivateNetworkClientServer    Not Used and Insecure

Подробный отчет о трафике

InternetClient                Not Used and Insecure

InternetClientServer          Not Used and Insecure

PrivateNetworkClientServer    Not Used and Insecure

Любая идея, почему это не работает?

2 ответа

Мой сценарий: разработал приложение для Магазина Windows для внутреннего использования, отлично работал на компьютере разработчика, однако при переносе на другой компьютер любой из вызовов HttpClient не удался. Здесь я столкнулся с двумя проблемами:

  1. Ошибка HttpClient при связи с IIS на локальном компьютере

  2. Сбой HttpClient при соединении с IIS на удаленном компьютере в локальной подсети

Проблема 2 была легко решаема, в Visual Studio настроить приложение, чтобы разрешить "Частные сети (клиент и сервер)" в соответствии с возможностями (Package.appxmanifest > Capabilities), повторно развернуть и все хорошо.

Проблему 1 было трудно решить. По умолчанию Visual Studio добавляет исключение в NetIsolation, которое разрешает и запрещает локальный доступ по шлейфу / локальный хост. Вы должны добавить свое приложение как исключение в этот список, однако информация в ссылке, представленной в OP, не работает, я не мог заставить команду работать вообще, поэтому вот как я это сделал:

(Обратите внимание, что приложение установлено на компьютере, на котором вы это выполняете)

  1. Перейдите в реестр и нажмите CTRL+F, чтобы найти ваше приложение (например, если оно называется TESTApp1, а затем введите его в поле поиска).
  2. Вы должны найти раздел реестра, который выглядит как guid, за которым следует имя, например:ac2efce7-a15b-40d0-92db-3abde43a6778_1.0.1.15_neutral__025mzc78q1aqe

Если у вас есть это имя, в командной строке (на всякий случай от имени администратора) запустите:CheckNetIsolation.exe LoopbackExempt -s

В выводе найдите свой GUID. Вы увидите SID под ним, запишите этот SID. 3) Запустите следующую команду, указав свой SID на проблемном компьютере:CheckNetIsolation.exe LoopbackExempt -a -p=SIDHERE

Примечание: Альтернативный шаг 2. Вы также можете найти свой SID в следующем разделе реестра (при условии, что вы установили приложение):

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings

Снова нажмите CTRL+F и найдите там свое приложение.

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

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