我正在笔记本电脑上使用UWP应用程序。在以前发布Windows 10的笔记本电脑上,我能够让我的应用程序在localhost上看到我的Web API服务,但是在这台笔记本电脑上,无论我尝试什么,我总是使用HTTP客户端得到此错误:
无法建立与服务器的连接
var response = await client.GetAsync(BuildGetRequest()).AsTask(source.Token);
如果我指向我在Azure上发布的服务,一切正常。 这是我尝试过的:
没有任何区别。
我注意到我在Edge中遇到了类似的问题,尽管允许在about:flags
中使用Localhost环回以及我在其中找到的其他一些建议:
我的Web API项目在除Edge之外的每个浏览器中运行良好,所以我猜测Edge是一个通用应用程序,问题是相互关联的。当我在Edge中调试它时,我收到此错误:
无法连接到代理服务器
如果我转到Settings
并关闭手动代理服务器,请再次运行我得到:
嗯,我们无法访问此页面
我注意到,由于某种原因手动代理服务器设置在后续运行期间不断重新开启。
有人可以提出任何其他建议我可以尝试让我的UWP应用程序在localhost上查看我的服务吗?
答案 0 :(得分:18)
它不是一个错误,它是一种称为网络隔离的功能。它是在Windows 8中引入的(Metro应用程序称为Windows运行时应用程序)。
出于安全考虑,安装在标准中的UWP应用程序 不允许方式对设备进行网络呼叫 安装在。
可以在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,可以让这项工作更轻松:
答案 1 :(得分:1)