我使用Microsoft Bot Builder v3.15.2.2
NuGet包在我的电脑上本地构建了一个僵尸程序。
在我的电脑上使用bot emulator v3.5.3.6
,我可以连接到机器人并与之交互。在我将Azure发布到Azure环境并使用我的机器人Test in Web Chat
页面中的Bot Service
选项后,我注意到机器人没有响应。我输入一条消息,按回车键,但机器人没有任何回复。
我已使用https://apps.dev.microsoft.com/
网站注册了僵尸程序,并将该站点的应用程序ID和密码复制到我的bot web.config文件的应用程序设置中。我可以验证这些设置在我的Azure Web App for bot的Application settings
选项卡中是否正确。
我花了很长时间通过Kudu查看日志流和诊断文件,但我不清楚为什么机器人没有回复。作为另一项测试,我编辑了项目的default.htm
文件以包含iframe
来托管机器人聊天窗口(iframe代码是通过机器人服务页面上的Channels
选项卡获得的) 。当我输入iframe时,会出现相同的结果 - 我没有得到机器人的响应。
使用Visual Studio进行远程调试并不是一个真正的选择,因为我们公司有严格的安全性,我怀疑他们是否愿意为我打开端口将Visual Studio连接到Azure Web App。
我在这里停滞不前,因为我不知道在诊断问题时应该做些什么。任何建议都将不胜感激。
修改
我打开了DevTools并尝试使用Azure中的“在Web聊天中测试”选项卡与机器人聊天。控制台窗口中捕获到以下错误:
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>
替换了令牌值。我希望这可能对某人有用。
答案 0 :(得分:0)
确保在机器人设置中将消息传递端点设置为https://{botname}.azurewebsites.net/api/messages
。
答案 1 :(得分:0)
问题与我们的网络代理有关。
基本上,由于在Azure Portal中测试机器人使用websockets,我们的代理默认阻止websocket访问。所以,热潮,机器人没有回应。
通过更改bot配置的网络设置,我们无法收到机器人的响应。