我正在笔记本电脑上使用UWP应用程序.在以前发布Windows 10的笔记本电脑上,我能够让我的应用程序在localhost上看到我的Web API服务,但是在这台笔记本电脑上,无论我尝试什么,我总是使用HTTP客户端收到此错误:
无法建立与服务器的连接
var response = await client.GetAsync(BuildGetRequest()).AsTask(source.Token);
如果我指向我在Azure上发布的服务,一切正常.这是我尝试过的:
在App的项目属性中设置允许的本地网络环回.确认在Fiddler的AppContainer Loopback Exemption Utility中检查了我的app包名称.
在Package.AppManifest中设置Internet(客户端),Internet(客户端和服务器),专用网络功能
尝试从命令行手动设置c:> checknetisolation loopbackexempt -a -n =
UWP启用本地网络环回
在绝望的行为中完全禁用了防火墙.
在完整的IIS而不是IIS Express中运行我的Web API.
没有任何区别.
我注意到我在Edge中遇到了类似的问题,尽管允许使用Localhost环回about:flags
以及我在其中找到的其他一些建议:
https://social.technet.microsoft.com/Forums/en-US/0face535-3c7a-4658-be34-6c376322ca34/microsoft-edge-cant-open-local-domains
我的Web API项目在除Edge之外的每个浏览器中运行良好,因此我猜测Edge是一个通用应用程序,问题是相互关联的.当我在Edge中调试它时,我收到此错误:
无法连接到代理服务器
如果我去Settings
关闭手动代理服务器,再次运行它我得到:
嗯,我们无法访问此页面
我注意到,由于某种原因,手动代理服务器设置在后续运行期间不断重新打开.
任何人都可以建议我可以尝试让我的UWP应用程序在localhost上查看我的服务吗?
这不是一个错误,它是一个称为网络隔离的功能.它是在Windows 8中引入的(Metro应用程序称为Windows运行时应用程序).
出于安全原因,不允许以标准方式安装的UWP应用程序对其安装的设备进行网络调用.
更多细节在这里和这里.
可以在Visual Studio调试设置中禁用该功能,还有文章如何允许Windows运行时应用程序的环回谈论使用CheckNetIsolation Windows工具为每个应用程序启用环回访问:
CheckNetIsolation.exe LoopbackExempt -s CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
还有GUI工具,如启用环回实用程序和环回免除管理器,使这项任务更容易: