Я использую 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);
Ожидается: Bot: Вы хотите поднять билет [Состояние 0] Пользователь:Да Бот: состояние, соответствующее деталям заявки [Состояние 1]
Фактический результат: После состояния 0, когда пользователь вводит Да, вызывается StartAsync, В Start Async я делаю doint context.wait (Состояние 0), поэтому он идетустановить 0 снова