Состояние бота испорчено. Диалог работает не так, как ожидалось. [SDK V3] - PullRequest
0 голосов
/ 30 марта 2019

Я использую 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 снова

...