【问题标题】:Can't see localhost from UWP app从 UWP 应用程序看不到 localhost
【发布时间】:2016-04-07 23:16:10
【问题描述】:

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

无法与服务器建立连接

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

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

  • 允许的本地网络环回在应用程序的项目属性中设置。 确认在 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 上看到我的服务?

【问题讨论】:

  • 我遇到了完全相同的问题,即使 Edge 浏览器无法正常工作。
  • 有解决方案吗?我也面临同样的问题

标签: c# windows localhost uwp


【解决方案1】:

这不是一个错误,而是一个特性,称为网络隔离。它是在 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

还有诸如 Enable Loopback UtilityLoopback Exemption Manager 等 GUI 工具可以让这项任务变得更容易:

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多