隧道我的本地主机时 Ngrok returns 405 错误

Ngrok returns 405 error while tunneling my localhost

我有一个 Web 应用程序机器人,我想远程控制它,以便一些人可以对其进行测试。我正在使用 Bot Framework Emulator 在本地对其进行测试并且效果很好,但我完全无法让 ngrok 托管它。

(我实际上是使用 ...azurewebsites 做到的。net/api/messages link 我的应用程序在 Azure 中有另一个机器人,但我不能用这个,所以我尝试使用 link ngrok 为我提供的 - 我管理的机器人和这个机器人都托管在 Azure 中,但我不知道如何使其可用于远程访问)

我正在走的步数:

  1. 在 Visual Studio 中部署应用,使其在 localhost:3979 上运行;

  2. 使用 ngrok 3979 http -host-header=rewrite localhost:3979;

  3. 在 ngrok 中打开外部端口
  4. 获取 ngrok 提供给我的转发 URL 之一,例如 https://3d609207.ngrok.io

  5. 在 Bot Framework Emulator 中插入前面的 URL;

  6. 单击连接。

在 ngrok 和 Bot Framework Emulator 中都如此 returns 我 405 Method Not Allowed.

我尝试访问插入到 Bot Framework Emulator 中的 link,我通常会看到在本地托管我的机器人时看到的页面:

Describe your bot here and your terms of use etc.

Visit Bot Framework to register your bot. When you register it, remember to set your bot's endpoint to

https://your_bots_hostname/api/messages

但是我无法在 Bot Framework Emulator 中发送或接收消息。

此外,ngrok 在 HTTP 请求标题下打印:

HTTP Requests
-------------

POST /                         405 Method Not Allowed
GET  /favicon.ico              200 OK
GET  /                         200 OK

我的 MSAppID 和密码在 web.config 中正确配置,编译结果没有错误,所以我怀疑它是代码上的东西(除非代码中有一些配置阻止远程访问这个 bot出于某种原因,但我不知道)。

如果您能就此问题提供帮助,我将不胜感激。感谢您的宝贵时间。

Both in ngrok and in Bot Framework Emulator returns me 405 Method Not Allowed

如果我只提供 https://xxxxxxxx.ngrok.io 作为消息端点,我可以重现这个问题。

请尝试将 https://xxxxxxxx.ngrok.io/api/messages 指定为对我有用的消息端点。