Aplikacja Windows Store: StreamSocket połączenie z localhost (127.0.0.1)

By | 28 września 2014

Podczas pisania aplikacji Windows Store, która pracuje z zasobami pobieranymi z localhost, można napotkać problem. “A connection attempted failed because the connection party did not properly respond after a period of time …” Problem okazuje się zagadkowy, ponieważ serwer na localhost’cie działa i nie ma żadnych powodów, żeby aplikacja miała problem z połączeniem. W końcu przecież to połączenie wewnątrz własnego komputera, nic nie powinno zawodzić.

Okazuje się jednak, że takie myślenie jest błędne, ponieważ w aplikacjach Windows Store zostały zabronione połączenia z tzw. loopback (localhost lub 127.0.0.1).

Dlaczego? Nie mam pojęcia, ale mam nadzieję, że z powodów bezpieczeństa, ponieważ nie mogę sobie jakoś wyobrazić, z jakiego innego powodu Microsoft miałby zablokować tą możliwość użytkownikom.Jednak jest sposób aby tę blokadę ominąć. Pierwszy polega na tym, że instalujemy VisualStudio na komputerze, na którym mamy aplikację z której chcemy się łączyć do localhost. Oczywiście to rozwiązanie jest bardzo kłopotliwe, dlatego istnieje rozwiązanie 2, które jest dużo lepsze i ładniejsze.Rozwiązanie

  1. Uruchamiamu CMD
  2. Przechodzimy do C:\Windows\System32\
  3. Wpisujemy checknetisolation LoopbackExempt -a -n=package-name
  4. Podmieniamy package-name na ten który odczytamy w package.appmanifest naszej apliakacji (screen poniżej)

package.appmanifest

Sprawdzenie, czy dodał się wpis

checknetisolation LoopbackExempt -s
List Loopback Exempted AppContainers
[1] -----------------------------------------------------------
 Name: 71019b7c-6915-4a32-a9e6-4b87a5b51d02_x1xh075qegwdj
 SID: S-1-15-2-3309481533-1492278452-4137804630-1388503216-2127054748-690736844-819066020
[2] -----------------------------------------------------------
 Name: kexp90.3fmseattle.kexpartistdiscovery_svgdnat1p2vd6
 SID: S-1-15-2-2012563013-332449103-1712730079-3179316490-2234986268-3338726070-3088550585
[3] -----------------------------------------------------------
 Name: AppContainer NOT FOUND
 SID: S-1-15-2-3997858894-1722826965-2906774761-292339451-3072000487-3297839464-3180616200
[4] -----------------------------------------------------------
 Name: AppContainer NOT FOUND
 SID: S-1-15-2-2670002398-4120870820-383953950-3982430728-1889674389-1530876232-793725804
OK.

Odszukujemy wpis z naszym SID i testujemy aplikacje.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *