【发布时间】: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