announcement之后,开箱即用的机器人状态管理将被弃用,我们已经使用以下文档实现了我们自己的机器人状态服务:
- Manage custom state data with with Azure Cosmos DB for .NET
- Custom State API Bot Sample
- Migrated bot state provider but calls to state.botframework.com are still being made
- State In Botframework
因此,我们可以将迁移过程概括为以下步骤:
- 设置将用于存储机器人状态数据的 Azure Cosmos DB。
- 更新
Conversation
IoC 容器以包含DocumentDbBotDataStore
注册。 - 确保不再使用
StateClient
类型,因为它使用默认的开箱即用的机器人状态存储。请改用IDialogContext
中的ConversationData
、PrivateConversationData
和UserData
。
执行上述步骤后,我们可以看到机器人状态数据现在已正确存储在我们自己的 Cosmos DB 中。此外,Bot Channel Emulator 不再报告与机器人状态相关的警告。
我的问题是,我们是否需要采取其他步骤来确保不会在幕后调用默认弃用的机器人状态服务。还有什么不是很明显但需要考虑的吗?
最佳答案
看起来您已经涵盖了所有内容。 SDK 中没有“在幕后调用默认已弃用的机器人状态服务”。如果您没有使用 activity.GetStateClient(),并且您已经正确实现了 IBotDataStore。大功告成。
本文档介绍了如何使用 Microsoft.Bot.Builder.Azure 中的 DocumentDbBotDataStore https://github.com/Microsoft/BotBuilder-Azure
关于c# - 迁移到自定义 BotState 服务 - list ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501468/