2016-01-04 24 views
10

Pracuję nad aplikacją UWP na moim laptopie. Na poprzednim laptopie z przedpremierowym Windows 10 udało mi się przekonać moją aplikację do zobaczenia mojej usługi web API na localhost, ale na tym laptopie, bez względu na to, co próbuję, zawsze otrzymuję ten błąd za pomocą klienta HTTP:Nie widzę lokalnego hosta z aplikacji UWP

A connection with the server could not be established

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

Gdybym wskazują na moim opublikowanym usługi na Azure, wszystko działa bez zarzutu. Oto, co próbowałem:

  • Dozwolone pętle lokalnej sieci są ustawione we właściwościach projektu aplikacji. Potwierdzono, że nazwa mojego pakietu aplikacji jest zaznaczona w narzędziu AppContainer Loopback Exemption Utility w Fiddler.
  • Zestaw Internet (klient), Internet (klient & Server), Private Networks możliwości w Package.AppManifest
  • Próbowałem ręcznego ustawiania c:> checknetisolation loopbackexempt -a -n = z linii poleceń
  • UWP Enable local network loopback
  • Całkowicie wyłączył zaporę ogniową w akcie czystej desperacji.
  • Uruchom moje Web API w pełnym IIS zamiast IIS Express.

Nic nie zmienia.

Zauważyłem, że mam podobny problem w Edge, mimo pozwalając localhost pętli zwrotnej w about:flags i kilka innych sugestii znalazłem na stronie:

My Web API tras projektowych dobrze w każdej przeglądarce z wyjątkiem Edge, więc domyślam się, że Edge jest uniwersalną aplikacją, problem jest powiązany. Kiedy debugować go w Edge, otrzymuję ten błąd:

Can’t connect to the proxy server

Jeśli pójdę do Settings i wyłączyć ręcznie serwer proxy, należy uruchomić go ponownie uzyskać:

Hmm, we can’t reach this page

Zauważam jednak, że dla z jakiegoś powodu ustawienie Serwera proxy ręcznego ponownie włącza się podczas kolejnych uruchomień.

Czy ktoś mógłby zasugerować cokolwiek innego, co mógłbym zrobić, aby moja aplikacja UWP mogła zobaczyć moją usługę na serwerze lokalnym?

+0

jestem uderzając dokładnie ten sam problem, nawet w tym nie działa przeglądarka Edge. – grimus

Odpowiedz

13

To nie jest błąd, to funkcja, zwana izolacją sieci. Został wprowadzony w Windows 8 (gdzie aplikacje Metro nazywały się aplikacjami Windows Runtime).

For security reasons, a UWP app that is installed in the standard manner is not allowed to make network calls to the device it is installed on.

Więcej szczegółów here i here.

Funkcja ta może zostać wyłączona w Wizualnych ustawień Studio Debug też artykuł How to allow loopback for Windows Runtime apps rozmów na temat korzystania z narzędzia CheckNetIsolation Windows, aby umożliwić dostęp do pętli zwrotnej za aplikacji:

CheckNetIsolation.exe LoopbackExempt -s 

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

Istnieją również GUI narzędzia takie jak Enable Loopback Utility i Loopback Exemption Manager które ułatwić to zadanie:

Enable Loopback Utility

+1

Problemem jest to, że nawet z tymi wszystkimi, których nie możesz mieć nasłuchującego Gniazda lub StreamSocket w aplikacji UWP akceptującej połączenia z tej samej maszyny –

+0

@GeorgeBirbilis arrr crap that sucks. Właśnie znalazłem dokument potwierdzający to stwierdzenie: "Ponadto aplikacja uruchomiona w systemie Windows może używać pętli zwrotnej IP tylko jako adresu docelowego dla żądania sieci klienta". https://msdn.microsoft.com/en-us/windows/hh780593.aspx – Geordie

+0

Zabawne jest to, że jeśli użyjesz Desktop Bridge do umieszczenia aplikacji Win32 w sklepie z oknami, będzie to w stanie zrobić cokolwiek zechce networking, jeśli się nie mylę –

Powiązane problemy