2016-11-14 3 views
6

Ganz neu bei der Verwendung von Web-App-Artikeln, und ich habe versucht, langsam einen Facebook Messenger Bot zu bauen. Wenn ich versuche zu verwenden ngrok kann ich die Adresse nicht besuchen ich gegeben habe, das heißt:Ngrok-Fehler '502 schlechtes Gateway'

ngrok http 5000 

ist, was ich in der Befehlszeile bin setzen, und es ist diese Rückkehr:

ngrok by @inconshreveable 

Session Status    online 
Version      2.1.18 
Region      United States (us) 
Web Interface     http://127.0.0.1:4040 
Forwarding     http://ea986ca5.ngrok.io -> localhost:5000 
Forwarding     https://ea986ca5.ngrok.io -> localhost:5000 

Connections     ttl  opn  rt1  rt5  p50  p90 
           0  0  0.00 0.00 0.00 0.00 

aber wenn ich die Adresse nehmen ‚https://ea986ca5.ngrok.io‘ wie von der Facebook-Entwickler-Seite erforderlich ist, heißt es:

The connection to http://ea986ca5.ngrok.io was successfully tunneled to your 
ngrok client, but the client failed to establish a connection to the local 
address localhost:5000. 


Make sure that a web service is running on localhost:5000 and that it is a 
valid address. 


The error encountered was: dial tcp [::1]:5000: connectex: No connection 
could be made because the target machine actively refused it. 

ist es ein Problem mit meinem lokal Port? Vielen Dank!

+0

können Sie tatsächlich zugreifen localhost: 5000? – njzk2

+0

Nun, da du es erwähnst, kann ich nicht? Warum ist das? –

+0

Haben Sie an diesem Port einen Server? – njzk2

Antwort

6

Genau wie @ njzk2 sollte gesagt haben, wenn Sie nicht haben einen Webserver läuft so kann es nicht funktionieren. Ich möchte es Ihnen klarer machen, wenn Sie immer noch verwirrt sind.

Was ngrok tut, ist es, Ihren lokalen Server (auf localhost ausgeführt) für die Außenwelt verfügbar zu machen (Rest des Internets). Für sich genommen ist es kein Webserver. Für Ihre Bot-Entwicklung benötigen Sie einen Webserver, der auf einem definierten Port läuft (in Ihrem Fall 5000). Dann können Sie ngrok auf diesen Port verweisen, so dass Anfragen, die an Ihre öffentliche Adresse gesendet werden, an das Programm weitergeleitet werden, das auf diesem Port ausgeführt wird. Der Web-Server wird dann akzeptieren und verarbeiten Anfragen von Facebook

5

Dieser arbeitete für mich

ngrok.exe http -host-header = Rewrite localhost:

zB ngrok.exe http -host-header = localhost umschreiben: 5219

Ich benutze Visual Studio 2017 nicht wissen, ob es Anthing bewirkt.

0

Dieser Fehler kann auftreten, wenn Sie eine HTTP-Regel zum Umleiten von HTTP an HTTPS haben.

Sie können diese Maschine für Entwickler deaktivieren oder eine benutzerdefinierte Regel hinzufügen, basierend auf dem X-Original-Host Header:

Ich verwende den IIS Rewrite-Plug-in und das ist, wie ich es behoben

<rule name="Redirect to https" enabled="true" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url=".*" negate="false" /> 
      <conditions logicalGrouping="MatchAll"> 
       <add input="{HTTPS}" pattern="off" /> 

       <add input="{HTTP_X_Original_Host}" pattern="yourngrokname.ngrok.io" negate="true" />    

      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" /> 
      </rule> 
-1

ich hatte beide zu verwenden (1) die Antwort von @ user6483104 und (2) meinen ngrok Tunnel beginnt die ungesicherte URL in meinem Projekt definiert mit (vs die SSL URLdh. https).

meine Antwort Siehe hier:How to configure Visual Studio 2017 to expose a non-encrypted port in a ASP.Net MVC https site

Hinweis: Wenn ich da falsch liege über eine Standard-ungesicherte URL zu sein, diese Antwort (How To Disable Https in Visual Studio 2017 Web Proj ASP.NET Core 2.0) behauptet zum Sperren der gesicherte URL eine Lösung zu haben. Ich habe es nicht ausprobiert, weil es bereits eine ungesicherte URL in meinem bestehenden Projekt definiert war (wie ich vermute, es mit Ihnen auch ist)

enter image description here

Verwandte Themen