代码之家  ›  专栏  ›  技术社区  ›  Jason Evans

发布到azure后bot没有响应

  •  0
  • Jason Evans  · 技术社区  · 6 年前

    我已经在我的个人电脑上建立了一个机器人,使用 Microsoft Bot Builder v3.15.2.2 Nuget包。

    使用 bot emulator v3.5.3.6 在我的电脑上,我可以连接到机器人并与之互动。在我将机器人发布到我们的azure环境中,并使用 Test in Web Chat 中的选项 Bot Service 页面为我的机器人,我注意到机器人没有响应。我输入了一条消息,按回车键,但是机器人没有返回任何信息。

    我已经用 https://apps.dev.microsoft.com/ 网站,我将应用程序ID和密码从该网站复制到bot web.config文件的应用程序设置中。我可以验证这些设置在 Application settings 用于bot的我的azure web应用的选项卡。

    我花了很长时间通过kudu查看日志流和诊断文件,但我不清楚为什么bot没有响应。作为另一个测试,我编辑了 default.htm 包含 iframe 托管BOT聊天窗口(IFRAME代码是通过 Channels 选项卡)。当我输入iframe时,会出现相同的结果-我没有从bot获得响应。

    使用visual studio进行远程调试并不是一个真正的选择,因为我们公司有严格的安全措施,我怀疑他们是否愿意为我打开端口,以便将visualstudio附加到azure web应用程序。

    我在这里停滞不前,因为我不知道该怎么诊断这个问题。任何建议都将不胜感激。

    编辑

    我打开devtools并尝试使用azure中的“testinwebchat”选项卡与bot聊天。在控制台窗口中捕获了以下错误:

    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> 为了隐私。我希望这对某人是有用的线索。

    2 回复  |  直到 6 年前
        1
  •  0
  •   kjr1995    6 年前

    确保将消息传递终结点设置为 https://{botname}.azurewebsites.net/api/messages 在机器人设置中。

        2
  •  0
  •   Jason Evans    6 年前

    问题是我们的网络代理。

    基本上,由于在azure门户中测试bot使用websockets,因此默认情况下,我们的代理会阻止websocket访问。所以,砰,机器人没有反应。

    通过更改bot配置的网络设置,我们无法从bot接收响应。

    推荐文章