无法从UWP应用程序中查看localhost

时间:2016-01-04 10:54:48

标签: c# windows localhost uwp

我正在笔记本电脑上使用UWP应用程序。在以前发布Windows 10的笔记本电脑上,我能够让我的应用程序在localhost上看到我的Web API服务,但是在这台笔记本电脑上,无论我尝试什么,我总是使用HTTP客户端得到此错误:

  

无法建立与服务器的连接

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

如果我指向我在Azure上发布的服务,一切正常。 这是我尝试过的:

  • 在App的项目属性中设置允许的本地网络环回。 确认我在Fiddler的AppContainer Loopback Exemption Utility中检查了我的应用程序包名称。
  • 在Package.AppManifest中设置Internet(客户端),Internet(客户端和服务器),专用网络功能
  • 尝试从命令行手动设置c:> checknetisolation loopbackexempt -a -n =
  • UWP Enable local network loopback
  • 以绝望的行为完全禁用了防火墙。
  • 在完整的IIS而不是IIS Express中运行我的Web API。

没有任何区别。

我注意到我在Edge中遇到了类似的问题,尽管允许在about:flags中使用Localhost环回以及我在其中找到的其他一些建议:

我的Web API项目在除Edge之外的每个浏览器中运行良好,所以我猜测Edge是一个通用应用程序,问题是相互关联的。当我在Edge中调试它时,我收到此错误:

  

无法连接到代理服务器

如果我转到Settings并关闭手动代理服务器,请再次运行我得到:

  

嗯,我们无法访问此页面

我注意到,由于某种原因手动代理服务器设置在后续运行期间不断重新开启。

有人可以提出任何其他建议我可以尝试让我的UWP应用程序在localhost上查看我的服务吗?

2 个答案:

答案 0 :(得分:18)

它不是一个错误,它是一种称为网络隔离的功能。它是在Windows 8中引入的(Metro应用程序称为Windows运行时应用程序)。

  

出于安全考虑,安装在标准中的UWP应用程序   不允许方式对设备进行网络呼叫   安装在。

更多详情herehere

可以在Visual Studio调试设置中禁用该功能,文章How to allow loopback for Windows Runtime apps也讨论了如何使用CheckNetIsolation Windows工具为每个应用程序启用环回访问:

CheckNetIsolation.exe LoopbackExempt -s

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

还有一些GUI工具,例如 Enable Loopback Utility Loopback Exemption Manager,可以让这项工作更轻松:

Enable Loopback Utility

答案 1 :(得分:1)

可能会在未来与项目重聚。

https://github.com/microsoft/ProjectReunion/issues/113

在这张票中强调您的需求。