MS Bot Framework V3 web chat/direct 行问题 - 内部服务器错误 500

MS Bot Framework V3 web chat/direct line issue - Internal Server Error 500

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

对话似乎启动正常,因为 Bot 向用户发送了一条消息,但并未发送所有用户响应,并且 Bot 以错误消息响应 'Sorry, my bot code is having an issue'。 见 -

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

Azure 中的错误消息

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

Chrome 开发工具控制台

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

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

单个operationId消息

异常详情 (1)

异常详情(2)

异常详情 (3)

异常详情 (4)

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

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

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

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

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