c# - MS Bot Framework V3 网络聊天/直线问题 - 内部服务器错误 500
问题描述
我是 C# 和 Bot Framework (V3) 的新手,并被要求开始在我加入的项目中测试现有的机器人。bot 本身在 Bot Emulator 上运行良好,并且在托管在 Skype 上时,但由于某种原因,Azure 上的网络聊天不起作用。由于网络聊天使用 Direct Line,它暂时停止了运行测试。我花了很多时间搜索 V3 Github 页面和这里,但我一直无法找到解决方案。
对话似乎可以开始了,因为 Bot 向用户发送了一条消息,但没有发送所有用户响应,并且 Bot 以错误消息“抱歉,我的 bot 代码有问题”作为响应。看 -
Azure 将其列为 500 错误 - 内部服务器错误。看
Azure 中的错误消息
然后,我查看了 Chrome 开发工具选项卡中的消息,得到了相同的错误和 502 错误,最近(或者我以前从未注意到)还有一个 CORS 错误。看
Chrome 开发工具控制台
在此之后,我在 Azure 上使用了 Application Insights,当我尝试使用网络聊天时,每个实例都会有三个项目;
- 一个 customEvent (StatusCode: 200),可能是 Bot 在对话开始时发送的消息。
- 带有问题 ID“Microsoft.Bot.ChannelConnector.BotAPI+d__31.MoveNext 的 System.Exception”的异常
- 另一个 customEvent (StatusCode : 500)
由于我对 C# 和 Bot Framework 之间的整个设置不是很熟悉,因此我不确定问题出在哪里。这是异常消息的一些屏幕截图 -
单个 operationId 的消息
异常详情 (1)
异常详情 (2)
异常详情 (3)
异常详情 (4)
我对这些消息有一些想法:
- “外部程序集”被描述为“Microsoft.Bot.ChannelConnector, Version=3.2.2.5, Culture=neutral, PublicKeyToken=null” - 缺少 PublicKeyToken 是否意味着用户没有获得令牌,因为错误?还是应该先发生这种情况,然后因为用户没有令牌而发生错误?
- 堆栈跟踪指向其中一个对话框文件中的一行,但是通过查看代码,我真的看不出问题出在哪里?我实际上删除了被标记的部分,但它只是将代码中问题所在的行更改为前一部分,所以我不确定这个文件是否存在问题?
如果有人对此有任何想法以及问题的原因可能是什么,我将不胜感激。
此外,我尝试做两件事来解决这个问题,但没有任何区别;
- 确保在将配置文件发布到 Azure 时勾选“全部删除”框
- 确保所有软件包都是最新的(包括安装 bot.connector.directline 软件包,由于某种原因尚未安装)
解决方案
因此,我的问题的解决方案是根据 Steven Kanberg 在上述评论中的建议。虽然我们的状态管理一直在使用已弃用的版本(现已更新),但这是一个 CORS 问题,原因是机器人位于应用服务的不同部署槽中。一旦将应用服务的 URI 添加为受信任的来源,问题就解决了。感谢 Steven Kanberg 提供的所有帮助。
推荐阅读
- css - 一列多行
- model-view-controller - 在剑道调度程序 MVC 上设置颜色
- python - Python - 检查目录时失败
- sql-server - 如何使用 order by with table 以分层方式对表进行排序
- ios - 在 Swift 4.2 中生成 QR 码和制作 PDF 文件后内存泄漏
- android - 当新的生产应用版本发布到 Play 商店时,是否可以通过电子邮件通知用户?
- gradle - Gradle 构建失败 - 找不到 org.apache.xalan:xalan:2.7.1
- c# - 在移动版键盘中使用 Tab 更改输入字段。(C#,NGUI)
- angular - 在角度项目中安装firebase时出现安装错误
- reflection - 通过可反射的 dart 中的字符串的名称获取类的公共静态字段/属性的值