Eva*_*ruz 66 dns xampp hosts windows-10 microsoft-edge
像很多程序员一样,我在本地测试网站.
我使用hosts文件将域名映射到我的本地ip(127.0.0.1).
我使用合格的域名,通常带有"d"子域名(用于"开发").
例如:
d.somewebsite.com
d.anotherwebsite.com
and so on...
Run Code Online (Sandbox Code Playgroud)
在Microsoft边缘,大多数网站都可以工作.但是,他们中的一些人没有.没有任何特殊或奇怪的域名将无法正常工作.只是一个简单的d.someletters.com
.
它们在Chrome,IE和Firefox中运行良好.
在Edge中,我收到错误消息:"嗯,我们无法访问此页面."
起初我以为它没有解决知识产权问题.但是,我意识到当我在另一个非相关网址上输入拼写错误时,未通过hosts文件路由的请求会被发送到我的ISP进行解析.如果我的ISP无法解决问题,他们会发回这个特殊搜索结果页面,其中包含您可能要查找的内容的建议.好吧,当我去我的本地域名时,我没有从我的ISP获取此页面.我直接从边缘得到上面提到的错误.
所以,在我看来,Edge正在正确地解析域名,否则它将被发送到我的ISP的DNS.
所以,我认为那可能是Edge无法连接到本地机器.但正如我所说,其中一些本地域名正常运作.另外,在Edge中直接使用127.0.0.1也可以.只是这几个域名给我一个问题.只有在Edge(所有其他浏览器都有效)中有任何想法吗?
如果重要的话,Web服务器是Apache2 for Windows(xampp).
此外,如果我在Edge中打开调试窗口并监视网络,我根本看不到任何请求.
编辑:我不再使用hosts文件.我在我的一个Linux机器上运行dnsmasq,我将它用于DNS而不是主机.也不再使用环回(显然,因为DNS现在在另一个盒子上),我使用的是内部私有IP地址(192.168 ...).同样的问题.
Chr*_*row 110
您的网络可以阻止环回作为Windows 10中的安全措施.
以管理员身份打开命令提示符,并运行此命令以使Edge免于环回:
CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
Run Code Online (Sandbox Code Playgroud)这是官方记录在这里(点击链接然后点击页面顶部的'如何调试localhost?'):
https://developer.microsoft.com/en-us/microsoft-edge/platform/faq/#how-can-i-debug-localhost
这里有一篇博客文章提供更多详细信息:https: //blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/
Eva*_*ruz 11
我(以为我)解决了它!
没用的东西:
解决方案:完全反直觉扭曲:
从您信任的站点列表中删除域名!
我应该注意到,我使用常识,认为这不仅仅是因为该网站仅存在于导致该问题的"可信站点"区域.我认为这是该区域的一些设置.因此,在我从"网站"列表中删除域名之前,我已将所有设置与我的Internet区域设置完全匹配(中高安全性,启用保护模式,不需要对所有站点进行服务器验证),我也尝试过我能找到的其他组合.没有区域安全设置组合起作用.唯一的解决方案是完全从"可信站点"列表中删除域.有趣的是它无论如何都适用于IE,即使这是IE的互联网设置对话框.这似乎只影响Edge.
编辑:两周后,我将配置更改为,而不是hosts文件,在本地Linux计算机上使用dnsmasq并将其用于DNS.我不确定它是否马上发生但在某些时候Edge再次停止工作!我已经在about:flags中选中了"allow loopback"复选框,所以我没想到CheckNetIsolation修复工作正常.但是,确实如此.边缘版本是20.10240.16384.0.我在Windows 10预览中使用了无法在Microsoft Edge(Project Spartan)中打开localhost的修复程序
编辑#2几个月后,Edge又遇到了这个问题.我尝试了以前的解决方案(以及其他解决方案),它们都不再适用于我.我要离开这个答案,因为我假设我遇到了两个不同的问题.
ttk*_*ttk 10
Edge不支持VPN IP地址,因此任何解决方法都需要使用某种代理.以下是我找到的一些解决方案:
安装并运行fiddler
.Fiddler基本上会拦截来自浏览器的请求,然后将其转发到目的地.这是最简单的解决方法.
通过内置的Windows工具配置代理:netsh
.基本步骤包括将开发域分配给该127.0.0.0/8
范围内的可用本地专用IP地址,然后将此IP映射到VPN上的Web服务器IP.请参阅此处的分步说明
使用ssh的端口转发功能配置代理.假设端口80在localhost上可用,添加127.0.0.1 d.somewebsite.com
到主机文件,然后运行以下ssh命令:ssh -L localhost:80:localhost:80 user@devwebserver
,其中devwebserver
是开发Web服务器的主机名(例如在VM或vagrant实例中,或通过VPN).此选项假定您具有对dev服务器的ssh访问权限.
您的"从受信任的网站中删除"解决方案对我不起作用,因为我的本地网站不在我信任的网站上.
但是你让我看了Internet选项,我设法在Windows 10上为我的本地站点工作.这就是我做的:
可能不适用于您的情况,但仍然如此。我的设置如下。公共空间地址(互联网)页面尝试在 iframe 中加载具有私有空间地址(内联网)的页面,而 Edge 将拒绝加载内联网页面,并显示相同的“嗯,我们无法访问此页面”消息,并在调试控制台中显示“SEC7117 错误”。事实证明,Edge 不喜欢混合互联网/内联网区域(请参阅了解增强保护模式博客文章了解原因)。Edge 在单独的 AppContainer 中运行选项卡,并且 AppContainer 网络限制对您的网络配置很敏感。
我的解决方案是通过向其分配第二个私有空间 IP,将托管相关 Intranet 页面的服务器从域网络中取出,并为该 IP 创建第二个 DNS 条目。服务器最终有 2 个 IP:一个位于域网络上,另一个 IP 和 2 个不同的 DNS 条目。然后,Edge 会指向替代 URL,并开始正常加载 Intranet 页面。似乎只要 PC 的 IP 掩码与相关页面 URL 不匹配,Edge 就会加载该页面。
我提到的博客文章包含有关 localhost 的 Loopback-blocked 和 IE 中缺乏 privateNetworkClientServer 功能的信息。据我所知,所有信息都适用于 Edge。
归档时间: |
|
查看次数: |
62452 次 |
最近记录: |