wake-up-neo.com

Aussetzen von localhost für das Internet über Tunneling (unter Verwendung von ngrok): HTTP-Fehler 400: Ungültige Anforderung; Ungültiger Hostname

Aus früheren Versionen der Frage geht Folgendes hervor: Website mit IP-Adresse anstelle von localhost durchsuchen , das ziemlich genau beschreibt, was ich bisher getan habe ... Ich habe die lokale IP zum Laufen gebracht. Dann habe ich ngrok gefunden und anscheinend muss ich mich nicht über die IP verbinden.


Ich versuche, meine auf localhost laufende Website dem Internet zugänglich zu machen. Ich habe ein Tool gefunden, das dies erledigt: ngrok.

Wenn die Website in Visual Studio ausgeführt wird, wird sie auf localhost/port # gestartet. Ich führe den Befehl "ngrok http port #" in der Kommandozeile aus. Alles scheint gut anzufangen. Ich generiere ein paar URLs und die ngrok-Inspektions-URL (localhost: 4040) funktioniert.

Das einzige Problem ist, dass ich beim Aufrufen der generierten URLs den HTTP-Fehler 400 erhalte: Ungültiger Hostname für ungültige Anforderung. Dies ist ein anderer Fehler als beim Ausführen von "ngrok http wrongport #", bei dem es sich um einen nicht gefundenen Host-Fehler handelt. Ich denke also, dass etwas Gutes passiert. Ich kann nur nicht sagen, was ...

Gibt es einen Schritt, den ich vermisse, um meine Website über den Tunneldienst dem Internet zugänglich zu machen? Wenn ja, kann ich es nicht in der ngrok-Dokumentation finden.

171
donlan

Troubleshot dieses Problem mit Ngrok. In den Worten von unwiderruflich werden einige Anwendungen wütend, wenn sie einen anderen Host-Header als erwartet sehen.

Das Ausführen des folgenden Befehls sollte das Problem beheben:

ngrok http [port] -Host-header="localhost:[port]"
453
donlan

Der folgende Befehl behebt das Problem

ngrok http -Host-header=localhost 8080
33
Sathish

Das hat bei mir nicht funktioniert. Sie könnten Folgendes tun:

Für IIS Express

In VS 2015: Gehe zu .vs\config\applicationhost.config Ordner in Ihrem Projekt

In VS 2013 und früher: Gehe zu %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

Suchen Sie die Bindung, die besagt:

<binding protocol="http" bindingInformation="*:5219:localhost" />

Für mich war es ein Projekt auf Port 5219

ändere es in

  <binding protocol="http" bindingInformation="*:5219:" />

IIS Express akzeptiert jetzt alle eingehenden Verbindungen an diesem Port.

Nachteil: Sie müssen IIS Express als admin ausführen.

oder Sie könnten den Host-Header in Ngrok umschreiben:

ngrok.exe http -Host-header=rewrite localhost:5219
32
Stefanvds

Das Einfachste für mich war iisexpress-proxy + ngrok.

Zuerst installiere ich iisexpress-proxy global mit npm

npm install -g iisexpress-proxy

Dann habe ich meinen localhost damit vertreten. Nehmen wir zum Beispiel an, meine Website läuft auf 3003.

iisexpress-proxy 3003 to 12345 wo 12345 ist der neue http-Port, zu dem ich einen Proxy erstellen möchte.

Dann kann ich ngrok darauf laufen lassen.

./ngrok.exe http 12345

Es funktioniert einfach! ????

Aber ich denke, es funktioniert nur mit http. Im Moment benutze ich https nicht zum Testen, aber selbst wenn es funktioniert, ist es normalerweise wie immer eine Menge Arbeit.

0
Reuel Ribeiro