我正在使用SDK V3版本3.15.3。在我的机器人中,我正在使用对话框模拟对话流程。但是,不是单击context.wait()中提到的回调函数,而是单击Message.Controller之后,该控件将转到我的根对话框中的StartAsync函数,因此,整个对话框流程从头开始,而不是继续到回调中提到的用于context.wait()的函数。这种行为也是非常随机的,因为在少数情况下(特别是在本地调试时),该机器人会按预期方式运行。
我曾尝试降级到3.13版,但即使这样也不起作用
这些是我正在Application_Start()中进行的注册
var store = new InMemoryDataStore();
Conversation.UpdateContainer(
builder =>
{
builder.Register(c => store)
.Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
.AsSelf()
.SingleInstance();
builder.Register(c => new CachingBotDataStore(store,
CachingBotDataStoreConsistencyPolicy
.ETagBasedConsistency))
.As<IBotDataStore<BotData>>()
.AsSelf()
.InstancePerLifetimeScope();
builder.RegisterType<Dialogs.RootDialog>()
.AsSelf().InstancePerLifetimeScope();
});
GlobalConfiguration.Configure(WebApiConfig.Register);
预期: 机器人:您想加票吗?[状态0] 用户:是的 Bot:与票证详细信息对应的州[州1]
实际结果: 当用户键入“是”时,在状态0之后,将调用StartAsync,在“启动异步”中,我是doint context.wait(状态0),因此它将再次回到状态0