首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >随机获取BadRequest调用EndDialogAsync()

随机获取BadRequest调用EndDialogAsync()
EN

Stack Overflow用户
提问于 2019-04-04 00:40:16
回答 1查看 100关注 0票数 0

我最近为许多用户部署了一个机器人。有时,当我调用EndDialogAsync()时,我会得到一个BadRequest错误。

下面是我的堆栈跟踪:

代码语言:javascript
复制
Microsoft.Bot.Schema.ErrorResponseException

Operation returned an invalid status code 'BadRequest'

Bot.CustomPrompts.CustomPrompt in OnPromptAsync at line 37:17 within BasicBot, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Called from: System.Runtime.ExceptionServices.ExceptionDispatchInfo in Throw within System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
 Bot.Dialogs.Tour.TourDialog+<>c__DisplayClass0_0+<<-ctor>b__10>d in MoveNext at line 512:17 within BasicBot, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Called from: System.Runtime.ExceptionServices.ExceptionDispatchInfo in Throw within System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e

TourDialog的第512行是:return await stepContext.EndDialogAsync();

CustomPrompt的第37行是:await turnContext.SendActivityAsync(options.Prompt, cancellationToken).ConfigureAwait(false);

该对话框似乎即将结束,因此stepContext应该不再存在。CustomPrompt是一个自定义类,用于在僵尸框架v4 (此处为Adaptive Card response from a WaterfallStep Dialog MS Bot framework v4)中实现AdaptivePrompts。我根本不知道为什么调用CustomPrompt,因为对话框应该已经结束了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 04:03:49

您必须记住,EndDialogAsync将只从堆栈中弹出一个对话框,因此如果堆栈上还有任何其他对话框,则位于堆栈顶部的对话框将成为新的活动对话框,并且它的ResumeDialogAsync将被调用,这可能会发送消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55500204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档