Warum öffnet Microsoft Edge einige lokale Websites, andere jedoch nicht, bei denen der Domänenname in der Hosts-Datei an 127.0.0.1 weitergeleitet wird?

75

Wie viele Programmierer teste ich Websites lokal.
Ich verwende die Hosts-Datei, um Domain-Namen meiner lokalen IP (127.0.0.1) zuzuordnen.

Ich verwende qualifizierte Domainnamen, normalerweise mit einer "d" -Unterdomäne (für "Entwicklung").

Zum Beispiel:

d.somewebsite.com 
d.anotherwebsite.com 
and so on...

In Microsoft Edge funktionieren die meisten Websites. Einige von ihnen tun dies jedoch nicht. Es gibt nichts Besonderes oder Seltsames an den Domainnamen, das nicht funktioniert. Nur eine einfache d.someletters.com.

Sie funktionieren gut in Chrome, IE und Firefox.

In Edge wird die Fehlermeldung angezeigt: "Hmm, wir können diese Seite nicht erreichen."

Zuerst dachte ich, es würde die IP nicht auflösen. Als ich jedoch einen Tippfehler für eine andere nicht verwandte URL machte, wurde mir klar, dass Anforderungen, die nicht von der Hosts-Datei weitergeleitet werden, zur Lösung an meinen ISP gesendet werden. Wenn mein ISP das Problem nicht beheben kann, sendet er diese spezielle Suchergebnisseite mit Vorschlägen zurück, die Sie möglicherweise suchen. Wenn ich zu meiner lokalen Domain gehe, erhalte ich diese Seite nicht von meinem ISP. Ich bekomme den oben genannten Fehler direkt von der Kante.

Es scheint mir also, dass Edge die Domain korrekt auflöst, sonst wäre sie an das DNS meines ISP gesendet worden.

Dann würde ich denken, dass Edge möglicherweise keine Verbindung zum lokalen Computer herstellen kann. Aber wie gesagt, einige dieser lokalen Domänen funktionieren einwandfrei. Die Verwendung von 127.0.0.1 direkt in Edge funktioniert ebenfalls. Es sind nur diese paar Domainnamen, die mir ein Problem bereiten. Und nur in Edge (alle anderen Browser funktionieren) Irgendwelche Ideen?

Der Webserver ist Apache2 für Windows (xampp), wenn dies wichtig ist.

Wenn ich das Debug-Fenster in Edge öffne und das Netzwerk überwache, werden überhaupt keine Anforderungen angezeigt.

BEARBEITEN: Ich verwende die Hosts-Datei nicht mehr. Ich habe dnsmasq auf einer meiner Linux-Boxen und verwende es für DNS anstelle von Hosts. Ich verwende auch kein Loopback mehr (offensichtlich, da sich DNS jetzt auf einer anderen Box befindet), sondern eine interne private IP-Adresse (192.168 ...). Gleicher Fehler.

Evan de la Cruz
quelle
Ich bin mir ziemlich sicher, dass dies etwas mit den Einstellungen der Kompatibilitätsansicht zu tun hat, die denen des IE ähneln. Ich kann es auf IE hin und her schalten. Nicht sicher, wo die Option am Rande ist.
Dipen Shah
Ich denke, Sie verwenden dies: microsoft.com/en-us/download/… , ich versuche jetzt zu sehen, ob diese Domains aus irgendeinem Grund in der Liste sind ...
Evan de la Cruz
Vielen Dank für Ihre Hilfe, aber ich glaube nicht, dass es das ist. Ich habe keine Websites in meinen Kompatibilitätslisten für IE oder "Enterprise Mode" (Edge's Kompatibilitätssystem-Ding)
Evan de la Cruz
Entschuldigung, dann bin ich mir wirklich nicht sicher.
Dipen Shah
2
Stoßen Sie einfach selbst auf dieses Problem. Keine der hier beschriebenen Korrekturen hat funktioniert, aber ich habe Fiddler (HTTP-Debugger) geöffnet und dann hat es gut funktioniert. Eine Problemumgehung besteht darin, Fiddler zu installieren und es beim Testen in Edge immer geöffnet zu haben. Ich bin mir jedoch nicht sicher, wie Fiddler Edge zum Laufen bringt. Wenn Edge die Anfrage normalerweise nicht sendet, warum sollte dann durch Hinzufügen eines Proxys die Anfrage gesendet werden?
Dave Kennard

Antworten:

122
  • Ihr Netzwerk kann Loopback als Sicherheitsmaßnahme in Windows 10 blockieren.

  • Öffnen Sie eine Eingabeaufforderung als Administrator und führen Sie diese aus, um Edge von einem Loopback auszunehmen:

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

( Microsoft.MicrosoftEdge_8wekyb3d8bbweist die Kennung für die Edge-App)

Hier gibt es einen Blog-Beitrag mit weiteren Details: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/

Chris Halcrow
quelle
14
Wo ist diese verrückte Kennung gefunden / dokumentiert?
mlhDev
1
Das hat bei mir nicht funktioniert, aber Geiger laufen zu lassen, was seltsam ist.
Daniel Jackson
2
Funktioniert bei mir. Ich habe es in developer.microsoft.com/en-us/microsoft-edge/platform/faq/…
manavi
8
Ich liebe Microsoft, Windows und IE / Edge. Jeder andere Browser funktionierte einwandfrei, aber Edge benötigte ein bizarres Befehlszeilenskript, um ausgeführt zu werden. Ich kann nicht sagen, dass es mich nicht überrascht. Vielen Dank, dass Sie die Antwort und die Ressourcen geteilt haben.
Benutzer
1
@ Chris Halcrow Ok, ich sehe, ich habe diesen Fix in einem anderen Beitrag unten erwähnt. Grundsätzlich habe ich gesagt, dass dieses Update eine Weile zu funktionieren schien, aber dann kehrte sich das Verhalten zurück.
Evan de la Cruz
12

Ich habe es gelöst!

Dinge, die nicht funktionierten:

  • Vornehmen von Änderungen an den IE-Kompatibilitätseinstellungen oder Windows-Kompatibilitätslisten
  • Verwenden vollständig qualifizierter Domainnamen
  • Verwenden einer anderen IP-Adresse als Loopback
  • mit http vs https
  • Entfernen Sie alle Javascript- und Cross-Site-Skripte / -Ressourcen von der Webseite
  • Aktivieren / Deaktivieren der Option in about: Flags, um Localhost-Loopback zuzulassen oder Kompatibilitätseinstellungen zu verwenden
  • Entfernen / Hinzufügen / Bearbeiten der Einträge in der TabProcConfig der Windows-Registrierung
  • Browserverlauf, Cache, Cookies löschen

Die Lösung: in einer völlig kontraintuitiven Wendung:

Entfernen Sie die Domainnamen aus Ihrer Liste der vertrauenswürdigen Sites !

  1. Öffnen Sie das Dialogfeld " Internetoptionen " (fragen Sie einfach Cortana oder verwenden Sie Windowskey + s).
  2. Gehen Sie zur Registerkarte Sicherheit
  3. Klicken Sie auf die Zone Vertrauenswürdige Sites
  4. Klicken Sie auf die Schaltfläche Sites
  5. Entfernen Sie die problematischen Domainnamen aus der Liste der vertrauenswürdigen Sites
  6. Klicken Sie auf Übernehmen und schließen Sie den Dialog
  7. Open Edge (oder starten Sie es neu, wenn es bereits ausgeführt wird)
  8. Viola

Ich sollte beachten, dass ich mit gesundem Menschenverstand herausgefunden habe, dass es nicht nur die Tatsache war, dass die Site lediglich in der Zone "Vertrauenswürdige Sites" vorhanden war, die das Problem verursacht hat. Ich dachte, es wäre eine Einstellung in dieser Zone. Bevor ich die Domainnamen aus der Liste "Sites" löschte, habe ich alle Einstellungen genau auf meine Internetzoneneinstellungen abgestimmt (mittlere Sicherheit, aktivierten geschützten Modus, keine Serverüberprüfung für alle Sites erforderlich), und ich habe es auch versucht jede andere Kombination, die ich finden konnte. Es gab keine funktionierende Kombination von Zonensicherheitseinstellungen. Die einzige Lösung bestand darin, die Domänen einfach vollständig aus der Liste der vertrauenswürdigen Sites zu entfernen. Lustige Sache ist, dass es im IE unabhängig funktioniert, obwohl dies der Internet-Einstellungsdialog für IE ist. Dies scheint nur Edge zu betreffen.

Windows 10 Internetoptionen

Entfernen Sie vertrauenswürdige Sites aus der vertrauenswürdigen Zone

BEARBEITEN: Zwei Wochen später ändere ich meine Konfiguration so, dass anstelle der Hosts-Datei dnsmasq auf einem lokalen Linux-Computer verwendet und für DNS verwendet wird. Ich bin mir nicht sicher, ob es sofort passiert ist, aber irgendwann hat Edge wieder aufgehört zu arbeiten! Ich hatte bereits das Kontrollkästchen "Loopback zulassen" aktiviert über: Flags, daher hatte ich nicht erwartet, dass der CheckNetIsolation-Fix funktioniert. Aber es tat es. Die Edge-Version ist 20.10240.16384.0. Ich habe das Update von Kann localhost in Microsoft Edge (Project Spartan) in der Windows 10-Vorschau nicht öffnen

EDIT # 2 Ein paar Monate später und Edge hat dieses Problem wieder. Ich habe beide vorherigen Lösungen (und andere) ausprobiert und keine von beiden funktioniert mehr für mich. Ich lasse diese Antwort, weil ich davon ausgehe, dass ich zwei verschiedene Probleme hatte.

Evan de la Cruz
quelle
Ich bin gespannt, ob Sie den (erweiterten) geschützten Modus aktivieren (siehe letzten Screenshot). Verhält sich der IE genauso wie Edge? Wir sind in beiden Browsern auf dasselbe Problem (und dieselbe Lösung) gestoßen, und im IE wurde es von EPM ausgelöst.
Nemec
Ich habe Edge mit und ohne geschützten Modus ohne Unterschied ausprobiert. Ich werde IE bald versuchen und zurück berichten.
Evan de la Cruz
Interessant. In meinem Fall (in der ersten Antwort beschrieben) hat das Hinzufügen der Intranetdomäne zur Liste der vertrauenswürdigen Sites über die Internetoptionen nicht geholfen. Ich dachte, diese Einstellungen gelten nicht für den Edge-Browser. Aber aus Ihrer Antwort geht hervor, dass dies manchmal der Fall ist.
Beluga
@nemec, die Site wird im IE geladen, unabhängig davon, welche Einstellungen ich verwende. Ich sollte jedoch beachten, dass ich CheckNetIsolation ausgeführt habe, wie unter stackoverflow.com/questions/30334289/… beschrieben, als ich meine Konfiguration geändert habe und Edge erneut fehlerhaft war .
Evan de la Cruz
1
Genau wie Sie verlinkt haben, wird es durch die Lösung CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"in einer Eingabeaufforderung mit erhöhten Rechten behoben.
Kevin Ghadyani
11

Edge unterstützt keine VPN-IP-Adressen, daher muss für jede Problemumgehung eine Art Proxy verwendet werden. Hier sind einige Lösungen, die ich gefunden habe:

  1. Installieren und ausführen fiddler. Fiddler fängt die Anfrage grundsätzlich vom Browser ab und leitet sie dann an das Ziel weiter. Dies ist die einfachste Problemumgehung.

  2. Konfigurieren Sie einen Proxy über das integrierte Windows-Tool : netsh. Die grundlegenden Schritte umfassen das Zuweisen Ihrer Entwicklungsdomäne zu einer verfügbaren lokalen privaten IP-Adresse im 127.0.0.0/8Bereich und das Zuordnen dieser IP zur IP des Webservers im VPN. Eine schrittweise Anleitung finden Sie hier

  3. Verwenden Sie die Portweiterleitungsfunktion von ssh, um einen Proxy zu konfigurieren. Angenommen, Port 80 ist auf localhost verfügbar, fügen Sie ihn 127.0.0.1 d.somewebsite.comzu Ihrer Hostdatei hinzu und führen Sie den folgenden Befehl ssh aus: ssh -L localhost:80:localhost:80 user@devwebserverWo devwebserverist der Hostname Ihres Entwicklungswebservers (z. B. in der VM- oder Vagrant-Instanz oder über das VPN)? Diese Option setzt voraus, dass Sie SSH-Zugriff auf den Dev-Server haben.

ttk
quelle
1
Ich benutze kein VPN. Was ist eine "VPN-IP-Adresse"?
Evan de la Cruz
2
Fiddler war immer ein guter Freund, aber ich hatte nicht erwartet, dass er in diesem Fall meinen Arsch rettet ... Ich habe stundenlang damit zu kämpfen und das funktioniert endlich ... DANKE
Makak
Keine der angegebenen Lösungen hat bei mir funktioniert, aber der Geiger hat den Job gemacht! Installieren Sie es einfach und beheben Sie Microsoft-Probleme!
undefinedman
WTF? Ich habe mich bemüht, die Antwort zu finden, warum Edge nicht mit einem Webserver in einer Active Directory-Domäne funktioniert, und die einzige Lösung, die funktioniert hat, war das Ausführen von Fiddler. Ich verstehe immer noch nicht, was los ist?
Ryan Mortier
7

Ihre Lösung "Von vertrauenswürdigen Sites entfernen" hat bei mir nicht funktioniert, da sich meine lokalen Sites nicht auf meinen vertrauenswürdigen Sites befanden.

Aber Sie haben mich dazu gebracht, die Internetoptionen zu prüfen, und es ist mir gelungen, IIS unter Windows 10 für lokale Websites für mich zum Laufen zu bringen. Folgendes habe ich getan:

  1. Öffnen Sie die Internetoptionen und wählen Sie "Lokales Intranet".

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie auf "Sites"

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie auf "Intranet-Netzwerk automatisch erkennen".

Geben Sie hier die Bildbeschreibung ein

  1. OK klicken. Probieren Sie Ihren lokalen Computer in Microsoft Edge aus und es sollte jetzt funktionieren.
lkessler
quelle
2
Mein Edge zeigte dieses Problem erneut und ich hoffte, dass diese Lösung das Problem beheben würde, aber leider funktionierte es bei mir nicht.
Evan de la Cruz
3
Hat auch bei mir nicht funktioniert (ich bin in einem privaten Netzwerk vagabundierend).
dtbarne
1
Die Option "Sites" ist für mich unter Windows 10 deaktiviert. Daher konnte ich sie nicht beheben.
LeonanCarvalho
4

Gilt möglicherweise nicht für Ihre Situation, aber dennoch. Mein Setup war wie folgt. Eine öffentliche Adressseite (Internet) versuchte, eine Seite mit einer privaten Speicheradresse (Intranet) in einem Iframe zu laden, und Edge lehnte es ab, die Intranetseite mit der gleichen Meldung "Hmm, wir können diese Seite nicht erreichen" zu laden. und mit "SEC7117 Error" in der Debug-Konsole. Es stellt sich heraus, dass Edge Internet- / Intranet-Zonen nicht gerne mischt (siehe Grundlegendes zum erweiterten geschützten Modus) Gründe hierfür finden Blogbeitrag zum ). Edge führt Registerkarten in separaten AppContainern aus, und AppContainer-Netzwerkeinschränkungen hängen von Ihrer Netzwerkkonfiguration ab.

Meine Lösung bestand darin, den Server, auf dem sich die betreffende Intranetseite befand, aus dem Domänennetzwerk zu entfernen, indem ihm eine zweite IP für den privaten Bereich zugewiesen wurde, und dieser IP einen zweiten DNS-Eintrag zu erstellen. Der Server verfügt über zwei IPs: eine im Domänennetzwerk und eine alternative und zwei verschiedene DNS-Einträge. Edge wird dann auf die alternative URL verwiesen und die Intranetseite wird problemlos geladen. Solange die IP-Masken des PCs und die betreffende Seiten-URL nicht übereinstimmen, wird Edge die Seite anscheinend laden.

Der Blog-Beitrag, den ich erwähnt habe, enthält Informationen zu Loopback-blockiert für localhost und mangelnde PrivateNetworkClientServer-Funktionen im IE. Soweit ich das beurteilen kann, gelten diese Informationen für Edge.

Beluga
quelle
2
Gilt definitiv nicht für meine Situation. Meine Intranetseite wird von meinem lokalen Computer aus bereitgestellt (mit anderen Worten, Client und Server sind auf demselben Computer). Es gibt keinen Iframe. Es gibt keine Vermischung von Zonen. Ich habe eine lokale Seite mit dem folgenden öffentlichen HTML-Dokument: <html><body>hello</body></html> Der Name meines Computers enthält keinen Domänennamen (nicht qualifiziert). Außerdem kann ich mit der Hostdatei zu mehreren lokalen Sites gelangen. Nur nicht dieser. Also funktionieren d.test1.com und d.test2.com beide, aber dieser, t.test3.com, funktioniert nicht. Es funktioniert gut in anderen Browsern.
Evan de la Cruz
Der Link zum Blog-Beitrag ist defekt. Es scheint auf diesen Beitrag hingewiesen zu haben .
Addison Schuhardt
3

Wenn mir dies passiert, kann ich im Registrierungsschlüssel unten einen Domäneneintrag finden, der der Domäne entspricht. Wenn ich es entferne, funktionieren die Dinge für eine Weile ... Ich weiß nicht warum, aber Edge wird es irgendwann wieder hinzufügen.

Computer \ HKEY_USERS \ S-1-5-21-964789662-521690395-1734141374-1111 \ Software \ Klassen \ Lokale Einstellungen \ Software \ Microsoft \ Windows \ CurrentVersion \ AppContainer \ Storage \ microsoft.microsoftedge_8wekyb3d8bbwe \ MicrosoftEdge \ TabProcConfig

Brian
quelle
Das war auch mein Problem. Hat jemand eine Idee warum?
Neromancer
Keine Ahnung warum, aber ich habe Powershell verwendet, um Edge zu entfernen und neu zu installieren, und das Problem tritt nicht mehr auf. Eine kurze Anleitung dazu finden Sie auf dieser Website: cnet.com/how-to/how-to-reinstall-default-apps-in-windows-10 . Sie könnten das versuchen ...
Brian
1
Kann TabProcConfigunter diesem Pfad nicht finden (für den aktuellen Benutzer existiert der angegebene Benutzer nicht).
Qtax
Das Entfernen meiner Site aus TabProcConfig hat bei mir funktioniert. Aber ich musste es auch von vertrauenswürdigen Sites entfernen (wo ich es zuvor hinzugefügt habe, weil ein anderer Tipp dies sagte)
user2543253
3

Aus Ihrer Bearbeitung geht hervor, dass Sie jetzt unter der Adresse 192.168.0.0/16 und nicht unter der Adresse 127.0.0.1 auf die Site zugreifen. Ich vermute, dass Sie auf ein Problem mit dem Verhalten des Edge-Browsers stoßen, das sich je nach der für den Zugriff verwendeten Schnittstelle unterschiedlich verhält der Standort. Andere Browser, die ich ausprobiert habe, verhalten sich nicht so.

In meiner Umgebung hatte ich ein Nur-Virtualbox-Host-Netzwerk-Setup und dies hatte einen NdisDeviceType von 1. Edge erlaubte mir nur, über diese Schnittstelle zu Sites zu navigieren, nachdem ich NdisDeviceType auf 0 geändert hatte. Der Registrierungsschlüssel, den Sie benötigen, ist:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\XXXX

Anstelle von XXXX benötigen Sie den richtigen Schlüssel für Ihre Schnittstelle, den ich aus "Routendruck" ermittelt und 1 abgezogen habe. Für mich war es "0016".

Der zu ändernde Wert wird aufgerufen *NdisDeviceType . (Das ist ein wörtliches Sternchen.) Ich habe es von 0 auf 1 geändert und musste für Windows neu starten, um die Änderung zu bemerken.

Meine Antwort wurde aus einem Beitrag von "Jani L" vom 3. Oktober 2017 entnommen . Ich habe diese Lösung auch detaillierter auf eine andere Frage zum Stapelüberlauf gepostet . Siehe auch ein Virtualbox-Ticket 15565 .

Rohanc
quelle
Das Problem tritt nicht mehr auf, daher kann ich das Update nicht bestätigen. Das klingt aber vielversprechend.
Evan de la Cruz
Bei der Überprüfung meiner Bearbeitung hatte ich anscheinend ein Problem mit dem Loopback und der lokalen IP-Adresse. Gilt diese Antwort noch?
Evan de la Cruz
2

Keine der anderen Lösungen hat bei mir funktioniert. Es stellt sich heraus, dass mein Problem mit VPN zusammenhängt. Microsoft Edge unterstützt VPN-IP-Adressen immer noch nicht, während Internet Explorer 11 dies tut. Beeindruckend, dass dies ab Mai 2016 noch ein Thema ist.

Zusätzliche Details: https://social.technet.microsoft.com/Forums/en-US/b3a687ae-345d-4c3f-9070-184b33fb1fc6/microsoft-edge-cant-access-vpn-ip-address-but-ie-11 -can? forum = win10itprogeneral

Derzeit scheint Microsoft Edge mit VPN nicht gut zu funktionieren. Der Mechanismus zum Herstellen einer Internetverbindung von Microsoft Edge unterscheidet sich ein wenig von Internet Explorer 11 und den anderen Desktop-Browsern, was ich nicht klar erklären kann, da ich nicht viel darüber weiß.

Verwenden Sie daher basierend auf der aktuellen Situation stattdessen Internet Explorer 11.

Vika
quelle
2

In meinem Fall hat es den Trick getan, den Netzwerktyp von privat auf öffentlich zu ändern. Dies ist auch reproduzierbar und das Ändern des zuverlässigen Netzwerktyps ändert den Status von "Arbeiten" zu "Erhalten":Http failure response for (unknown url): 0 Unknown Error

Aros
quelle
Können Sie die Schritte zum Ändern des Netzwerktyps unter Windows 10 Home (kabelgebundenes Ethernet) bereitstellen? Ich kann die erwarteten Optionsfelder nicht finden. Am nächsten kann ich die Netzwerkfreigabeoptionen mit verschiedenen Optionen für privat oder öffentlich finden , die mir nicht ganz richtig erscheinen.
Evan de la Cruz
1. Klicken Sie in der Taskleiste auf das WLAN-Symbol. 2. Klicken Sie auf Eigenschaften in Ihrem Netzwerk. 3. Ändern Sie das Netzwerkprofil von "Privat" in "Öffentlich". tinkertry.com/…
Mark Leong
0

Für mich ging ich zu Internetoptionen (Systemsteuerung), dann zu Sicherheit, wählte dann das lokale Intranet aus und setzte ein Häkchen in "Intranet-Netzwerk automatisch erkennen". Dadurch wurden die unten aufgeführten verschachtelten Optionen ausgegraut, und Edge begann sofort mit der Verwendung meiner Hosts-Datei.

Frumbert
quelle
2
Ich habe es versucht, aber leider hatte ich keinen Erfolg.
Daniel Jackson
@ DanielJackson Ich kann dies auf meinem
Arbeitscomputer