【发布时间】:2018-06-11 12:17:03
【问题描述】:
我在我的 PC 上本地构建了一个机器人,使用 Microsoft Bot Builder v3.15.2.2 NuGet 包。
在我的电脑上使用bot emulator v3.5.3.6,我可以连接到机器人并与之交互。在我将机器人发布到我们的 Azure 环境,并在我的机器人的 Bot Service 页面中使用 Test in Web Chat 选项后,我注意到机器人没有响应。我输入了一条消息,按回车键,但机器人没有返回任何信息。
我已使用https://apps.dev.microsoft.com/ 网站注册了机器人,并将该网站的应用 ID 和密码复制到了我的机器人 web.config 文件的应用设置中。我可以验证这些设置在我的用于机器人的 Azure Web 应用程序的 Application settings 选项卡中是否正确。
我花了很长时间通过 Kudu 查看日志流和诊断文件,但我不清楚为什么机器人没有返回响应。作为另一项测试,我编辑了项目的default.htm 文件以包含一个iframe 来托管机器人聊天窗口(iframe 代码是通过机器人服务页面上的Channels 选项卡获得的)。当我在 iframe 中输入内容时,会出现相同的结果 - 我没有收到机器人的响应。
使用 Visual Studio 进行远程调试并不是一个真正的选择,因为我们公司有严格的安全措施,我怀疑他们是否愿意为我打开端口以将 Visual Studio 附加到 Azure Web 应用程序。
我在这里停滞不前,因为我不知道在诊断问题时要寻找什么。任何建议将不胜感激。
编辑
我打开了 DevTools 并尝试使用 Azure 中的“网络聊天中的测试”选项卡与机器人聊天。在控制台窗口中捕获了以下错误:
botchat.js:20 WebSocket connection to 'wss://webchat.botframework.com/v3/directline/conversations/<FOO>/stream?watermark=-&t=<FOO>' failed: Error during WebSocket handshake: Unexpected response code: 400
请注意,出于隐私考虑,我将令牌值替换为 <Foo>。我希望这可能对某人有用。
【问题讨论】:
-
您是否将 /api/messages 附加到您的端点?
-
啊,我知道你要去哪里了 - 在这种情况下,我不是通过模拟器与机器人交互,也不是通过使用带有
/messages/api的 uril。我正在使用 Azure 门户中出现的Test in Web Chat选项卡作为机器人的机器人服务页面。网络聊天会自动为我连接到机器人,我不需要提供 url。 -
如果您使用 .NET SDK 开发您的应用程序,那么当您在门户中注册您的机器人时,您应该将端点指定为 https://.../api/messages
-
好吧,我明白你的意思了。是的,当我在 Azure 中注册机器人时,我传递了包括
/messages/api/在内的完整 URL。我已经仔细检查了我的机器人的Overview选项卡,消息端点`包含带有/messages/api的完整 URL。 -
这个机器人是如何创建的?通常不需要在apps.dev.microsoft.com 创建任何内容,机器人服务模板会自动为您完成。
标签: azure azure-web-app-service botframework