c# - MS Bot Framework V3 网络聊天/直线问题 - 内部服务器错误 500

标签 c# botframework azure-bot-service

我是 C# 和 Bot Framework (V3) 的新手,被要求开始在我加入的项目中测试现有的机器人。机器人本身在 Bot Emulator 上和在 Skype 上托管时运行良好,但由于某种原因,Azure 上的网络聊天不起作用。由于网络聊天使用 Direct Line,因此暂时停止运行测试。我花了很多时间搜索 V3 Github 页面和此处的 SO,但我一直无法找到解决方案。

对话似乎启动正常,因为 Bot 向用户发送了一条消息,但所有用户响应都没有发送,并且 Bot 响应错误消息“抱歉,我的 bot 代码有问题”。 见 -

Bot error message

Azure 将其列为 500 错误 - 内部服务器错误。 看

Azure 中的错误消息

Error messages in Azure

然后我查看了 Chrome Dev Tools 选项卡中的消息,得到了相同的错误以及 502 错误,最近(或者我以前从未注意到),还有 CORS 错误。 见

Chrome 开发工具控制台

Chrome Dev Tools console

在此之后,我在 Azure 上使用了 Application Insights,对于每个实例,当我尝试使用网络聊天时,都会出现三个项目;

  • 自定义事件(StatusCode:200),大概是 Bot 在对话开始时发送的消息。
  • problemId 为“System.Exception at Microsoft.Bot.ChannelConnector.BotAPI+d__31.MoveNext”的异常
  • 另一个自定义事件(StatusCode:500)

由于我不太熟悉 C# 和 Bot Framework 之间的整个设置,所以我不太确定问题出在哪里。这是异常消息的一些屏幕截图 -

单个operationId消息

Messages for single operationId

异常详情(一)

Exception details (1)

异常详情(二)

Exception details (2)

异常详情(三)

Exception details (3)

异常详情(4)

Exception details (4)

我对这些消息有一些想法:

  1. “外部程序集”被描述为“Microsoft.Bot.ChannelConnector,Version=3.2.2.5,Culture=neutral,PublicKeyToken=null”- 缺少 PublicKeyToken 是否意味着用户没有获得 token 因为错误?还是应该先发生这种情况,然后因为用户没有 token 而发生错误?
  2. 堆栈跟踪指向其中一个对话框文件中的一行,但是通过查看代码,我真的看不出问题是什么?我实际上删除了被标记的部分,但它只是将问题所在的代码行更改为上一节,所以我不确定这个文件是否存在问题?

如果有人对此有任何想法以及问题的原因可能是什么,我将非常感激。

此外,为了解决这个问题,我尝试做了两件事,但没有任何效果;

  • 确保在将配置文件发布到 Azure 时勾选“全部删除”复选框
  • 确保所有软件包都是最新的(包括安装 bot.connector.directline 软件包,由于某种原因该软件包不存在)

最佳答案

因此,我的问题的解决方案是按照 Steven Kanberg 在上述评论中的建议。虽然我们的状态管理一直在使用已弃用的版本(现已更新),但这是一个 CORS 问题,原因是机器人处于与应用程序服务不同的部署槽中。一旦将应用程序服务的 URI 添加为可信来源,问题就解决了。感谢 Steven Kanberg 提供的所有帮助。

关于c# - MS Bot Framework V3 网络聊天/直线问题 - 内部服务器错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55260369/

相关文章:

c# - HTML 电子邮件正文未正确呈现

c# - 如何在 Akka.NET 中远程部署具有动态名称的 actor

c# - 如何测试对话机器人本地主机

jquery - 使用 jQuery CSS 更改 Botframework 中的自适应卡片

azure - MS bot服务消息端点可以检测用户的编辑行为吗?

c# - ShowInTaskbar 在 WPF 中不能可靠地工作

c# - 根据类型返回委托(delegate)函数

javascript - Bot Connector - Direct Line API 交叉对话?

javascript - 如何重构此 Node.js 代码,以避免重复

azure - QnA 机器人仅在 Azure 和 Teams Chat 中使用精确措辞时才会响应