2017-09-13 10 views
1

Dans le cadre de bot, lorsque j'essaie d'enregistrer l'état, puis exécutez le bot de fb messenger J'ai l'erreur "Désolé, mon code de bot a un problème."Botframework erreur lors de l'enregistrement de l'état

En commentant la ligne suivante, cette erreur ne vient pas plus: await botClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, botData);

Pourquoi cela pourrait-il se produire? J'ai également essayé setPrivateConversationDataAsync, il donne le même comportement

+2

Pouvez-vous ajouter ApplicationInsights et obtenir les détails d'exception? Il semble qu'une erreur comme 412 Precondition a échoué (https://docs.microsoft.com/fr-fr/bot-framework/troubleshoot-general-problems#what-causes-an-error-with-http-status-code-412 -precondition-failed-or-http-status-code-409-conflict) –

+0

Une autre ressource à consulter ici https://docs.microsoft.com/fr-fr/bot-framework/dotnet/bot-builder-dotnet- Etat – JasonSowers

Répondre

1

Le client d'état par défaut (activity.GetStateClient().BotSate) ne doit pas être utilisé dans le contexte d'une boîte de dialogue. Les boîtes de dialogue Bot Builder chargent automatiquement l'état au début du traitement des messages et persistent lorsque le traitement des messages est terminé. Au lieu de cela, utilisez les méthodes IDialogContext pour manipuler Etat dans la boîte de dialogue: context.UserData.SetValue("UserDataKey", objectToPersist);