2016-11-14 11 views
6

Совершенно новый подход к использованию любых приложений для веб-приложений, и я пытался медленно создавать бонус Facebook Messenger. Когда я пытаюсь использовать ngrok я не могу посетить адрес, я дал, то есть:Ngrok errors '502 bad gateway'

ngrok http 5000 

является то, что я кладу в командной строке, и это возвращение этого:

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 

Но когда я беру адрес «https://ea986ca5.ngrok.io», как это требуется постранично разработчиков Facebook, он говорит:

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. 

ли проблема с моим местным портом? Благодаря!

+0

можно реально получить доступ к локальному: 5000? – njzk2

+0

Теперь, когда вы упомянули об этом, я не могу? Почему это? –

+0

у вас есть сервер, слушающий этот порт? – njzk2

ответ

6

Как @ njzk2 должен был сказать, если у вас нет веб-сервера, поэтому он не может работать. Я хотел бы уточнить вам, если вы все еще смущены.

ngrok делает, должен сделать ваш локальный сервер (работает на локальном хосте) доступным для внешнего мира (остальная часть Интернета). Само по себе это не веб-сервер. Итак, для вашей бот-разработки вам нужно иметь веб-сервер, работающий на определенном порту (который в вашем случае равен 5000). Затем вы можете указать ngrok на этот порт, чтобы он перенаправлял запросы, отправленные на ваш общий адрес, в программу, запущенную на этом порту. Веб-сервер будет принимать и обрабатывать запросы от Facebook

5

Это работало для меня

ngrok.exe HTTP -host-заголовок = переписывают локальный:

например ngrok.exe HTTP -host-заголовок = rewrite localhost: 5219

Im, используя визуальную студию 2017, не знает, если она воздействует на все.

0

Эта ошибка может возникнуть, если у вас есть правило HTTP для перенаправления HTTP на HTTPS.

Вы можете отключить эту функцию для разработчиков машины или добавить правило на основе X-Original-Host заголовка:

Я использую перезаписи IIS плагин и это, как я установил его

<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

я должен был использовать как (1) ответ от @ user6483104 и (2) начать свой ngrok туннель с помощью небезопасный URL, определенный в моем проекте (против SSL URL в то есть. HTTPS).

Смотрите мой ответ здесь:How to configure Visual Studio 2017 to expose a non-encrypted port in a ASP.Net MVC https site

Примечание: Если я неправ там быть необеспеченными URL по умолчанию, этот ответ (How To Disable Https in Visual Studio 2017 Web Proj ASP.NET Core 2.0) утверждает, что есть решение для отключения защищенного URL. Я не пробовал, потому что уже был незащищенный URL определен в моем существующем проекте (как я подозреваю, что с вашим, а)

enter image description here