机器人模拟器没有产生 ngrok

Posted

技术标签:

【中文标题】机器人模拟器没有产生 ngrok【英文标题】:Bot Emulator not spawning ngrok 【发布时间】:2019-12-17 09:56:44 【问题描述】:

我正在尝试使用 Microsoft 的虚拟助手模板 (https://github.com/microsoft/botframework-solutions/blob/master/docs/readme.md),虽然我最终通过 Azure 中的 Web Chat 成功安装并运行了它,但我无法让它在本地的 Bot Emulator 中运行。我已经安装了 ngrok,并且 Bot Emulator 设置为在启动时启动它,它会抛出一个错误。

在 Bot Emulator 设置中,我填充了 ngrok 可执行文件的路径,我选中了 Bypass ngrok for local addresses 复选框(来自此解决方案的设置文档中的示例,我在 Emulator 启动时运行 ngrok选中复选框,Localhost override 设置为 localhost(同样,来自解决方案示例),并且 Locale 设置为 en-US。我尝试检查和取消选中 Bypass ngrok for local addresses 复选框,但结果是相同的。

以下是 Bot Emulator 中连接尝试的输出。

[12:02:12]Emulator listening on http://localhost:50757
[12:02:33]Error: The bot is remote, but the service URL is localhost.
Without tunneling software you will not receive replies.
[12:02:33]Connecting to bots hosted remotely [12:02:33]Configure ngrok
[12:02:33]Failed to spawn
ngrok"error_code":104,"status_code":503,"msg":"ngrok is not yet ready
to start tunnels","details":"err":"a successful ngrok tunnel session
has not yet been established"

我怀疑缺少一些 ngrok 配置,但文档仅显示了与使用 ngrok 进行隧道传输相关的 Bot Emulator 设置。

【问题讨论】:

您的 ngrok 似乎有问题。你能打开命令行,导航到包含 ngrok.exe 的目录并运行'ngrok http 3978 -host-header="localhost:3978"'吗?应该发生的是您的 CL 将被 ngrok 状态信息替换。 因此您建议的命令输出版本、区域、Web 界面和连接列表(所有计数均为 0)。它还列出了与某些 IP 地址“重新连接”的会话状态和“现有连接被远程主机强制关闭”的关闭语句。然后会话状态切换到“正在重新连接(已解析的 tunnel.us.ngrok.com 没有记录)”,然后返回到带有 IP 地址的先前语句。 看来一切都很好。我将所有内容重新部署到一个新的虚拟机上,虽然我最初仍然遇到 ngrok 无法生成错误,但这可能只是时间问题,因为它稍后会连接并且虚拟助手在机器人模拟器中加载和运行。 虚拟机 -> Ngrok -> Azure Bot 服务注册 -> Bot Framework Emulator(确保将您的 App Id 和密码添加到 Bot 和模拟器) 【参考方案1】:

我将所有内容重新部署到一个新的虚拟机上,虽然我最初仍然遇到 ngrok 无法生成错误,但这只是一个时间问题,因为它稍后会连接并且虚拟助手在机器人模拟器中本地加载和运行。感谢大家的建议。

【讨论】:

以上是关于机器人模拟器没有产生 ngrok的主要内容,如果未能解决你的问题,请参考以下文章

ngrok 状态错误 - 看起来 ngrok 隧道不再存在

有没有办法使用 Ngrok 将 Azure 机器人服务连接到本地托管的机器人?

404 Not Found with ngrok 和 Bot Framework

Bot 是远程的,但回调 URL 是 localhost

使用 ngrok 在 Teams 中测试机器人功能

405 方法不允许,Django + ngrok,仅在我的本地机器上