无法在Windows 10预览版的Microsoft Edge(Project Spartan)中打开本地主机

64
我安装了Windows 10预览版并安装了IIS。
在Project Spartan中打开“http://localhost”无法连接。
IE没有问题。问题出在哪里?

2
这可能是与Spartan有关的小问题,因为它不是最终版本。从提升的命令提示符中运行CheckNetIsolation LoopbackExempt -a -n=Microsoft.Windows.Spartan_cw5n1h2txyewy会解决这个问题吗? - vcsjones
从10166版本开始,Microsoft Edge默认可以访问localhost - Sampson
当我尝试打开http://my-fqdn(其中my-fqdn是我的笔记本电脑的完全限定域名)时,我遇到了同样的问题。奇怪的是,http://localhost可以正常工作。下面的被接受的答案解决了我的问题,尽管我不得不使用命令行修复。只是在about:flags中勾选框并没有为我解决问题。(它已经被选中了。取消选中、重新启动、重新选中、重新启动也都没有起作用。) - Matt Varblow
投票关闭为“无法重现”,因为这已经不再是可重现的问题,而且人们出于某种原因仍然在寻找解决方案来解决他们在更新版本的Windows 10中遇到的问题。 - TylerH
8个回答

78

因此,问题在于斯巴达 Edge没有访问环回地址的权限,这是大多数Windows商店应用程序被阻止访问的内容。

如果您正在使用Windows 10 RTM或版本10166,则可以通过导航到about:flags并选中“允许本地主机环回”来完成:

enter image description here

图片由Ryan Joy提供,并经过同意.

如果您使用的是Windows 10的早期版本,则可以使用CheckNetIsolation工具将其添加到LoopbackExempt列表中。在提升的命令提示符中使用以下命令:

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

Microsoft.MicrosoftEdge_8wekyb3d8bbwe 是Edge应用程序的标识符。可以使用PowerShell中的Get-AppxPackage查找Spartan/Edge的结果并使用PackageFamilyName来确定其标识符。

从Build 10158开始,PackageFamilyName已从Microsoft.Windows.Spartan_cw5n1h2txyewy更改为Microsoft.MicrosoftEdge_8wekyb3d8bbwe


16
我在微软Edge团队工作。这是我们目前正在研究的一个“已知问题”。 - Sampson
35
当我进入开发者设置时,“允许本地主机回环”已经被勾选,但它仍然没有起作用。 - Metropolis
5
我取消了"允许环回"选项,重启Edge,然后选中它,再次重启Edge,这样就可以了。 - Ben Zuill-Smith
3
@Sampson,现在已经快到2018年了,但它仍然无法运行。 - Pedro Silva
5
@Sampson,现在是2019年,仍然无法工作 - 进展真是太慢了。 - Oscar Jara
显示剩余15条评论

18

出于安全考虑,Microsoft Edge 默认情况下以网络隔离方式运行。如果您有 10158 或更新 版本并需要启用回环并调试本地主机服务器,则可以从提升的 shell 运行以下命令:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

或者

checknetisolation loopbackexempt -a -p=S-1-15-2-3624051433-2125758914-1423191267-1740899205-1073925389-3782572162-737981194

如果您使用较旧版本,则可以使用以下命令:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.Windows.Spartan_cw5n1h2txyewy

在将来的更新中,您可以使用 about:flags 启用 localhost 回环支持。


3
对于不熟悉命令的人来说。打开命令提示符,例如 cmdPowerShell 或其他适用于 Windows 的命令行程序,并通过右键单击以管理员身份打开它。输入上面提供的命令并按回车键。关闭所有 MS Edge 窗口并重新打开它。完成。 - vee
尝试用管理员身份运行两个COM,同时勾选了开发标志,但还是不起作用。弹出框显示“你需要一个应用程序…”。有什么想法吗? - Tadas V.
2
所以等等,我可以访问整个互联网,但不能访问本地主机,因为“出于安全考虑”?这似乎毫无意义......我是一名开发人员。访问localhost有点...你懂的... 重要。由于它不起作用,我就不在Edge上进行测试了。我想知道这对浏览器Edge会产生什么影响。我猜无法使用它进行测试意味着它将得到很少开发者的爱。我知道我不会再经历其他“只需安装虚拟机来测试您的网站”的IE麻烦了! - Stijn de Witt
1
在Win10 pro build 18363上遇到了这个问题,所以它仍然存在。已检查开发标志。使用第一个命令解决了它。 - Pantalaimon

8

对于最新的版本(10158),以下命令适用:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

诀窍在于使用Get-AppxPackage PowerShell命令,如vcsjones所提到的,找出Edge应用程序的家族名称。

我必须执行 CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe" - 请注意家族名称周围的引号。 - Laurence

7
自Windows 10 Build 10166+(可通过Windows Insider获取,今天发布),在Microsoft Edge中默认支持localhost访问,无需运行以前回答中列出的CheckNetIsolation命令。
如果您希望配置更安全,可以通过“about:flags”禁用此访问。

2
我可以在Build 10240上使用“localhost”和官方IP地址,但不幸的是,计算机名称无法使用。 - Simon
它也无法访问本地主机的子域 - 我已将我的每个Web项目配置为project1.localhost:8080project2.localhost:8080等,因为我可以使用根相对URL - 但是Edge无法访问它们。 - Brendan
实际上,当我访问本地主机时,它可以正常工作一次。然后,当我尝试重新加载页面时,它又会出现“您需要一个应用程序”的消息。因此,使用Edge进行测试真的很不方便! - Stijn de Witt

1
请按照以下步骤进行:

1.

enter image description here

2.
复制此代码。
CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

3.

enter image description here

**

工作完成!

0

对我来说,既不是使用CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe命令,也不是手动启用Edge上的“允许本地主机环回”起作用。

以下方法有效:

  1. 编辑C:\Windows\System32\drivers\etc\hosts文件,并添加一个自定义主机名到127.0.0.1的映射,如127.0.0.1 local

  2. 打开Internet选项并将http://local添加到本地Intranet站点中。


0

导航到C:\ Windows \ System32 \ drivers \ etc 保存hosts文件备份副本 以管理员身份打开hosts文件 删除或注释任何带有127.x.x.x或localhost的行...

重新启动电脑。


0

在Windows 10中,将子域名添加到C:\Windows\System32\drivers\etc\hosts文件中。


2
127.0.0.1 子域名.本地主机 - Prosky
1
我已经按照那样添加了 - 没有成功。 - CJ Kepinsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接