Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
325 views
in Technique[技术] by (71.8m points)

loopback address - Cannot connect to localhost in windows store application

As i read all over the internet microsoft block the option to listen and recieve traffic on localhost (127.0.0.1) for any port. I want for developing purposus to test my 2 server/client apps locally. I followed the instruction here: http://msdn.microsoft.com/en-us/library/windows/apps/hh780593.aspx

but it doesnt work. when I use the debug option I am getting:

Network Capabilities Status

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

Detailed Traffic Report

InternetClient                Not Used and Insecure

InternetClientServer          Not Used and Insecure

PrivateNetworkClientServer    Not Used and Insecure

any idea why it doesnt work?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

My scenario: Developed an Windows Store App for internal use, ran fine on development machine, however when migrating to another machine any of the HttpClient calls failed. There are two issues I faced here:

  1. HttpClient failure when communicating to IIS on the local machine

  2. HttpClient failure When communicating to IIS on a remote machine on the local subnet

Problem 2 was an easy fix, in Visual Studio set the app to allow "Private Networks (Client & Server)" under the capabilities (Package.appxmanifest > Capabilities), redeploy and all is good.

Problem 1 was difficult to resolve. By default Visual Studio adds an exception in the NetIsolation which permits and denies local loopback/localhost access. You need to add your app as an exception in this list, however the information in the link provided in the OP doesn't work, I couldn't get the command to work at all, so here's how I did it:

(Note ensure the app is installed on the machine you are running this through)

  1. Go to your registry, and CTRL+F to find your app (for example if it's called TESTApp1, then enter that in to the search box).
  2. You should find a registry key that looks like a guid followed by a name, for example: ac2efce7-a15b-40d0-92db-3abde43a6778_1.0.1.15_neutral__025mzc78q1aqe

Once you have that name, in a command prompt (as administrator, just in case) run : CheckNetIsolation.exe LoopbackExempt -s

In the output, find your GUID. You will see the SID under it, make a note of this SID. 3) Run the following command, entering in your SID on the problem machine: CheckNetIsolation.exe LoopbackExempt -a -p=SIDHERE

Note: Alternative step 2: You can also find your SID under the following registry key (assuming you have installed the app):

HKEY_CURRENT_USERSoftwareClassesLocal SettingsSoftwareMicrosoftWindowsCurrentVersionAppContainerMappings

Again, CTRL+F and find your app under there.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...