web-dev-qa-db-fra.com

Pourquoi Microsoft Edge ouvre-t-il certains sites Web locaux, mais pas d'autres, où le nom de domaine est routé vers 127.0.0.1 dans le fichier hosts

Comme beaucoup de programmeurs, je teste les sites localement.
J'utilise le fichier hosts pour mapper les noms de domaine sur mon adresse IP locale (127.0.0.1).

J'utilise des noms de domaine qualifiés, généralement avec un sous-domaine "d" (pour "développement").

Par exemple:

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

Dans Microsoft Edge, la plupart des sites Web fonctionnent. Cependant, deux d'entre eux ne le font pas. Il n'y a rien de spécial ou bizarre sur les noms de domaine qui ne fonctionneront pas. Juste un simple d.someletters.com.

Ils fonctionnent bien dans Chrome, IE et Firefox.

Dans Edge, le message d'erreur suivant s'affiche: "Hmm, nous ne pouvons pas accéder à cette page."

Au début, j'ai pensé que cela ne résolvait pas l'adresse IP. Cependant, j'ai réalisé lorsque j'ai fait une faute de frappe sur une autre URL non liée, que les demandes qui ne sont pas acheminées par le fichier hosts sont envoyées à mon fournisseur de services Internet pour être résolues. Si mon fournisseur de services Internet ne peut pas le résoudre, il renvoie cette page de résultats de recherche spéciale avec des suggestions sur ce que vous essayez peut-être de rechercher. Eh bien, lorsque je vais sur mon domaine local, je ne reçois pas cette page de mon fournisseur de services Internet. Je reçois l'erreur mentionnée ci-dessus directement de Edge.

Donc, il me semble que Edge résout le domaine correctement, sinon il aurait été envoyé au DNS de mon FAI.

Donc, je penserais alors que peut-être Edge ne peut tout simplement pas se connecter à la machine locale. Mais comme je l'ai dit, plusieurs de ces domaines locaux fonctionnent bien. De plus, l’utilisation de 127.0.0.1 directement dans Edge fonctionne également. Ce sont juste ces quelques noms de domaine qui me posent un problème. Et seulement dans Edge (tous les autres navigateurs fonctionnent) Des idées?

Le serveur Web est Apache2 pour Windows (xampp) si cela compte.

De plus, si j'ouvre la fenêtre de débogage dans Edge et surveille le réseau, aucune requête ne sera émise.

EDIT: Je n'utilise plus le fichier hosts. Dnsmasq tourne sur l’une de mes machines Linux et je l’utilise pour DNS au lieu d’hôtes. De plus, n'utilisant plus de bouclage (évidemment, le DNS étant actuellement sur une autre boîte), j'utilise une adresse IP privée interne (192.168 ...). Même problème.

63
Evan de la Cruz
  • Votre réseau peut bloquer le bouclage en tant que mesure de sécurité dans Windows 10.

  • Ouvrez une invite de commande en tant qu'administrateur et exécutez cette opération pour exempter Edge d'un bouclage:

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

(Microsoft.MicrosoftEdge_8wekyb3d8bbwe est l'identifiant de l'application Edge)

Il y a un article de blog ici donnant plus de détails: https://blogs.msdn.Microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-Microsoft-Edge/

102
Chris Halcrow

Je pensais l'avoir résolu!

Ce qui ne fonctionnait pas:

  • Modification des paramètres de compatibilité IE ou des listes de compatibilité Windows)
  • Utilisation de noms de domaine complets
  • Utilisation d'une adresse IP autre que le bouclage
  • en utilisant http vs https
  • supprimer tous les scripts/ressources javascript et intersites de la page Web
  • cocher/décocher l'option dans about: flags pour autoriser le bouclage localhost ou utiliser les paramètres de compatibilité
  • supprimer/ajouter/éditer les entrées du TabProcConfig du registre Windows
  • suppression de l'historique de navigation, du cache, des cookies

La solution: dans une tournure totalement contre-intuitive:

Supprimez les noms de domaine de votre liste sites de confiance!

  1. Ouvre la Options Internet (demandez à Cortana ou utilisez windowskey + s)
  2. Allez à l'onglet Sécurité
  3. Cliquez sur la zone Sites de confiance
  4. Cliquez sur le bouton Sites
  5. Supprimez les noms de domaine en difficulté de la liste des sites de confiance
  6. Cliquez sur Apply puis fermez la boîte de dialogue.
  7. Ouvrez Edge (ou redémarrez-le s'il est déjà en cours d'exécution)
  8. Alto

Je dois noter que, selon le bon sens, je me suis dit que ce n’était pas simplement le fait que le site était simplement présent dans la zone "Sites de confiance" qui était à l’origine du problème. Je pensais que c'était un cadre sur cette zone. Donc, avant de supprimer les noms de domaine de la liste "sites", j'ai fait en sorte que tous les paramètres correspondent exactement à ceux de ma zone Internet (sécurité moyenne élevée, activation du mode protégé, aucune vérification du serveur n'est requise pour tous les sites), et j'ai également essayé toutes les autres combinaisons possibles. Aucune combinaison de paramètres de sécurité de zone n'a fonctionné. La seule solution consistait simplement à supprimer complètement les domaines de la liste des sites de confiance. La chose amusante est que cela fonctionne dans IE peu importe, même s'il s'agit de la boîte de dialogue des paramètres Internet pour IE. Cela ne semble affecter que Edge.

Windows 10 Internet Options

Remove Trusted Sites from the Trusted Zone

EDIT: Deux semaines plus tard, je modifie ma configuration pour, à la place du fichier hosts, utiliser dnsmasq sur une machine Linux locale et l’utiliser pour DNS. Je ne sais pas si c'est arrivé tout de suite, mais Edge a cessé de travailler à nouveau! J'avais déjà coché la case "autoriser le bouclage" à propos de: flags, donc je ne m'attendais pas à ce que le correctif CheckNetIsolation fonctionne. Mais ça l'a été. La version Edge est 20.10240.16384.0. J'ai utilisé le correctif de Impossible d'ouvrir localhost dans Microsoft Edge (Project Spartan) dans l'aperçu Windows 1

EDIT # 2 Quelques mois plus tard, Edge rencontre à nouveau ce problème. J'ai essayé les deux solutions précédentes (et d'autres) et aucune d'entre elles ne fonctionne plus pour moi. Je laisse cette réponse parce que je suppose que j'ai rencontré deux problèmes distincts.

11
Evan de la Cruz

Edge ne prend pas en charge les adresses IP VPN; toute solution de contournement doit donc utiliser une sorte de proxy. Voici quelques solutions pour lesquelles j'ai trouvé du travail:

  1. Installez et exécutez fiddler. Fiddler va essentiellement intercepter la requête du navigateur, puis la transférer à la destination. C'est la solution de contournement la plus simple.

  2. Configurez un proxy via l'outil Windows intégré: netsh. Les étapes de base consistent à affecter votre domaine de développement à une adresse IP privée locale disponible dans le 127.0.0.0/8 plage, puis mappe cette adresse IP sur celle du serveur Web sur le VPN. Voir les instructions étape par étape ici

  3. Utilisez la fonctionnalité de transfert de port de ssh pour configurer un proxy. En supposant que le port 80 soit disponible sur localhost, ajoutez 127.0.0.1 d.somewebsite.com dans votre fichier hôte, puis exécutez la commande ssh suivante: ssh -L localhost:80:localhost:80 user@devwebserver, où devwebserver est le nom d’hôte de votre serveur Web de développement (par exemple, dans VM ou instance vagante, ou sur le VPN). Cette option suppose que vous avez un accès ssh à la serveur dev.

9
ttk

Votre solution "supprimer des sites de confiance" ne fonctionnait pas pour moi car mes sites locaux ne se trouvaient pas sur mes sites de confiance.

Mais vous me faites regarder les Options Internet et je réussis à obtenir IIS fonctionne pour des sites locaux pour moi sous Windows 10. Voici ce que je fis:

  1. Ouvrez Options Internet et sélectionnez "Intranet local".

enter image description here

  1. Cliquez sur "Sites"

enter image description here

  1. Cliquez sur "Détecter automatiquement le réseau intranet"

enter image description here

  1. Cliquez sur OK. Essayez votre site de machine local dans Microsoft Edge et cela devrait maintenant fonctionner.
7
lkessler

Peut ne pas s'appliquer à votre situation, mais néanmoins. Ma configuration était la suivante. Une page d’adresse d’espace public (Internet) essayait de charger une page avec une adresse d’espace privé (intranet) dans un iframe et Edge refuserait de charger la page intranet avec le même message "Hmm, nous ne pouvons pas atteindre cette page", et avec "SEC7117 Error" dans la console de débogage. Il s'avère que Edge n'aime pas mélanger les zones Internet/Intranet (voir comprendre le mode protégé amélioré bloguer pour les raisons). Edge exécute des onglets dans AppContainers distincts et les restrictions de réseau AppContainer sont sensibles à votre configuration réseau.

Ma solution consistait à extraire le serveur qui hébergeait la page intranet en question du réseau de domaine en lui attribuant une deuxième adresse IP d'espace privé et à créer une deuxième entrée DNS pour cette adresse IP. Le serveur finit par avoir 2 adresses IP: une sur le réseau du domaine et une alternative et 2 entrées DNS différentes. Edge est ensuite dirigé vers l'URL alternative et le chargement de la page intranet commence parfaitement. Il semble que tant que les masques IP du PC et l'URL de la page en question ne correspondent pas, Edge chargera la page.

L'article de blog que j'ai mentionné contient des informations sur le bouclage avec blocage pour localhost et le manque de capacité de privateNetworkClientServer dans IE. Autant que je sache, toutes ces informations s'appliquent à Edge.

3
beluga

Lorsque cela m’arrive, je peux trouver une entrée de domaine dans la clé de registre ci-dessous qui correspond au domaine. Quand je l'enlève, les choses fonctionnent, pendant un moment ... Je ne sais pas pourquoi, mais Edge les rajoutera éventuellement.

Ordinateur\HKEY_USERS\S-1-5-21-964789662-521690395-1734141374-1111\Software\Classes\Paramètres locaux\Logiciel\Microsoft\Windows\CurrentVersion\AppContainer\Stockage\Microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\TabEdge\TabProcConfig

3
Brian

Dans mon cas, changer le type de réseau de privé à public a fait l'affaire. Ceci est également reproductible et le changement du type de réseau fiable passe de "fonctionnement" à "get": Http failure response for (unknown url): 0 Unknown Error

2
Aros

Aucune des autres solutions n'a fonctionné pour moi. Il se trouve que mon problème concerne le VPN. Microsoft Edge ne prend toujours pas en charge les adresses IP VPN, contrairement à Internet Explorer 11. Impressionnant, cela reste un problème à partir de mai 2016.

Détails supplémentaires: https://social.technet.Microsoft.com/Forums/en-US/b3a687ae-345d-4c3f-9070-184b33fb1fc6/Microsoft-Edge-cant-access-vpn-ip-add-address-but -ie-11-can? forum = win10itprogeneral

Actuellement, Microsoft Edge ne semble pas bien fonctionner avec un réseau privé virtuel. Et le mécanisme de connexion à Internet à partir de Microsoft Edge est un peu différent d'Internet Explorer 11 et des autres navigateurs de bureau, ce que je ne peux pas expliquer clairement car je n'y connais pas grand-chose.

Donc, en fonction de la situation actuelle, utilisez plutôt Internet Explorer 11.

2
Vika

En notant d'après votre modification que vous accédez maintenant au site sur l'adresse 192.168.0.0/16, plutôt que sur 127.0.0.1, je suppose que vous rencontrez un problème avec le comportement différent du navigateur Edge en fonction de l'interface d'accès utilisée. le site. Les autres navigateurs que j'ai essayés ne se comportent pas de cette façon.

Dans mon environnement, j'avais une configuration réseau réservée à l'hôte Virtualbox, avec un type NdisDeviceType égal à 1. Edge me permettait uniquement de naviguer vers des sites via cette interface après avoir modifié NdisDeviceType en 0. La clé de registre dont vous avez besoin est la suivante:

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

Au lieu de XXXX, vous avez besoin de la clé correcte pour votre interface, que j'ai déterminée à partir de "itinéraire d'impression" et soustraite de 1. Pour moi, il s'agissait de "0016".

La valeur à changer s'appelle *NdisDeviceType. (C'est un astérisque littéral.) Je l'ai changé de 0 à 1 et j'ai dû redémarrer Windows pour remarquer le changement.

Ma réponse a été recueillie dans un article de "Jani L" daté du 3 octobre 2017. J'ai également posté cette solution plus en détail dans une autre question de stackoverflow . Voir également un billet Virtualbox 15565 .

1
rohanc

Pour moi, je suis allé à Options Internet (panneau de configuration), puis à Sécurité, puis sélectionné intranet local, puis cochez la case "Détecter automatiquement le réseau intranet". Cela a grisé les options imbriquées ci-dessous, et Edge a immédiatement commencé à utiliser mon fichier hosts.

0
frumbert