Exposer localhost à Internet via le tunneling (en utilisant ngrok): Erreur HTTP 400: demande incorrecte; Nom d’hôte invalide

Parmi les versions précédentes de la question, il y a ceci: Parcourir le site Web avec une adresse IP plutôt que localhost , qui décrit à peu près ce que j’ai fait jusqu’à présent … J’ai l’IP local qui fonctionne. Ensuite, j’ai trouvé ngrok, et apparemment je n’ai pas besoin de me connecter via IP.


Ce que j’essaie de faire est d’exposer mon site Web s’exécutant sur localhost sur Internet. J’ai trouvé un outil qui va faire ça: ngrok.

En exécutant le site Web dans Visual Studio, le site Web démarre sur localhost / port #. Je lance la commande “ngrok http port #” dans la ligne de commande. Tout semble bien démarrer. Je génère quelques URL et l’url ngrok inspection (localhost: 4040) fonctionne.

Le seul problème est que quand je vais aux URL générées, je reçois une erreur HTTP 400: mauvaise demande de nom d’hôte non valide. C’est une erreur différente que lorsque je lance “ngrok http wrongport #”, qui est une erreur introuvable par l’hôte … alors je pense que quelque chose de bon se produit. Je ne peux pas dire quoi

Y a-t-il une étape qui me manque pour exposer mon site à Internet via le service de tunneling? Si c’est le cas, je ne le trouve pas dans la documentation de ngrok.

Résoudre ce problème avec ngrok. En d’autres termes, certaines applications deviennent coléreuses lorsqu’elles voient un en-tête d’hôte différent de celui attendu.

L’exécution de la commande suivante devrait résoudre le problème:

ngrok http [port] -host-header="localhost:[port]" 

cependant, cela peut ne pas être un correctif complet (apparemment, au moins un cas différent peut causer ce problème), alors consultez l’autre réponse

Cela n’a pas marché pour moi. vous pouvez faire ce qui suit:

Pour IIS Express

Dans VS 2015: Accédez au .vs\config\applicationhost.config de votre projet.

Dans VS 2013 et %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config antérieures: accédez à %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

Trouvez la liaison qui dit:

  

Pour moi, c’était un projet en cours d’exécution sur le port 5219

changer pour

   

IIS Express accepte désormais toutes les connexions entrantes sur ce port.

Inconvénient: vous devez exécuter IIS Express en tant qu’administrateur.

ou vous pouvez réécrire l’en-tête de l’hôte dans Ngrok:

 ngrok.exe http -host-header=rewrite localhost:5219 

La commande suivante corrigera le problème

 ngrok http -host-header=localhost 8080 

Pas.

  1. Exécutez la commande sur votre console à partir du répertoire ngrok.exe. ngrok http port, c.-à-d. ngrok http 80 https://www.screencast.com/t/oyuEPlR6Z Set

  2. Ngrok url à votre application.

Cela créera un tunnel pour votre application.

Merci .