我有一个Web应用程序机器人,希望让一些人进行测试。我使用 Bot Framework Emulator 在本地测试它,并且效果很好,但我无法通过 ngrok 进行主机托管。
(我实际上使用 Azure 中我的应用程序链接的 ...azurewebsites.net/api/messages 成功实现了另一个机器人的设置,但是这个机器人却失败了,所以我尝试使用 ngrok 提供的链接 - 两个机器人都托管在 Azure 中,但我不知道如何使其可供远程访问)
我执行的步骤:
在 Visual Studio 中部署应用程序,使其运行在 localhost:3979;
使用
ngrok 3979 http -host-header=rewrite localhost:3979
在 ngrok 中外部打开端口;获取 ngrok 提供的一个转发URL,例如:
https://3d609207.ngrok.io
在 Bot Framework Emulator 中插入上述 URL;
点击连接。
但无论是在 ngrok 还是在 Bot Framework Emulator 中,都返回 405 Method Not Allowed
。
我尝试访问我在 Bot Framework Emulator 中插入的链接,我通常可以看到托管我的机器人本地运行时看到的页面:
在此处描述您的机器人及使用条款等内容。
访问 Bot Framework 以注册您的机器人。注册时,请记住将机器人的端点设置为
但我无法在 Bot Framework Emulator 中发送或接收消息。
此外,ngrok 在 HTTP 请求标题下打印出以下内容:
HTTP Requests
-------------
POST / 405 Method Not Allowed
GET /favicon.ico 200 OK
GET / 200 OK
我的 MSAppID 和密码已经在 web.config 文件中正确配置,编译也没有出现任何错误,所以我怀疑问题不在代码中(除非代码中有一些配置阻止了远程访问机器人的操作,但我不知道具体是什么)。
若能对此问题提供任何帮助,将不胜感激。谢谢您抽出宝贵时间。
ngrok http [port] -host-header="localhost:[port]"
并将语言环境设置为与我的Visual Studio部署的端口相同。非常感谢。 - Major Sam