【问题标题】:Getting error "The reader's MaxDepth of 64 has been exceeded" while moving from a dialog to another many times in Bot Framework Emulator在 Bot Framework Emulator 中多次从对话框移动到另一个对话框时出现错误“已超出读者的 MaxDepth 64”
【发布时间】:2022-11-08 17:52:50
【问题描述】:

当从一个对话框多次移动到另一个对话框时,甚至在同一个对话框中循环时,都会出现问题。在同一个对话框中循环 9 次后,里面有很多提示。来自“OnTurnError”的错误

value:"The reader's MaxDepth of 64 has been exceeded. Path 'DialogState.dialogStack.$values\[0\].
state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].s
tate.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].
state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].
state.dialogs.dialogStack.$values\[0\].state.dialogs.dialogStack.$values\[0\].state.options.Prompt.attachments.$values'."

我试图清空堆栈,更改 MaxDepth 但没有任何改变。有什么方法可以管理带有许多提示的长时间对话而不会出现此错误。

【问题讨论】:

  • 您能否分享有关如何更改 startup.cs 中的MaxDepth 的代码?
  • @RamFattah ` public void ConfigureServices(IServiceCollection services) { services.AddHttpClient().AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.MaxDepth = HttpHelper.BotMessageSerializerSettings.MaxDepth; });` 值应该更新为 128但没有任何改变。
  • @Mohammed Amin,你能试试下面的代码看看它是否有帮助:services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.MaxDepth = null; });
  • @RamFattah,不幸的是我遇到了同样的错误。实际上,我认为这个问题与 newtonsoft.json 包 v13 有关,因为当我将包降级到 v12 并将所有其他包降级以适合 newtonsoft.json v12 时,机器人运行正常。但我认为这个解决方案不会在很长一段时间内有效,因为某些软件包将被弃用。

标签: c# botframework botframeworkemulator


【解决方案1】:

当我为 ReplaceDialogAsync 方法传递对话框 ID 参数时,该方法使用 nameof(WaterfallDialog) 而不是 nameof(ReviewSelectionDialog) (我想要重复的对话框的名称)启动循环,机器人运行正常。但是我仍然不知道为什么新代码可以正常工作!

  • 以前的代码
return await stepContext.ReplaceDialogAsync(nameof(ReviewSelectionDialog), userProfile, cancellationToken); 
  • 修改
return await stepContext.ReplaceDialogAsync(nameof(WaterfallDialog), userProfile, cancellationToken); 

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 2017-04-27
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多