首页 > 解决方案 > MS Bot Framework V3 网络聊天/直线问题 - 内部服务器错误 500

问题描述

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

对话似乎可以开始了,因为 Bot 向用户发送了一条消息,但没有发送所有用户响应,并且 Bot 以错误消息“抱歉,我的 bot 代码有问题”作为响应。看 -

机器人错误消息

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

Azure 中的错误消息

Azure 中的错误消息

然后,我查看了 Chrome 开发工具选项卡中的消息,得到了相同的错误和 502 错误,最近(或者我以前从未注意到)还有一个 CORS 错误。看

Chrome 开发工具控制台

Chrome 开发工具控制台

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

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

单个 operationId 的消息

单个 operationId 的消息

异常详情 (1)

异常详情 (1)

异常详情 (2)

异常详情 (2)

异常详情 (3)

异常详情 (3)

异常详情 (4)

异常详情 (4)

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

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

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

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

标签: c#botframeworkazure-bot-service

解决方案


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


推荐阅读