我使用Microsoft Bot Framework开发了一个小型机器人。我已将其作为App Service部署到Azure,并为其提供了多个渠道。 DirectLine,Skype,Facebook和Telegram。一切都按预期工作。然后,我将代码更新为一个截然不同的新对话框,并从Visual Studio重新发布到Azure。现在我看到了奇怪的行为。我的DirectLine频道,我的嵌入式WebChat和模拟器选择了新的机器人。我的Facebook频道,Skype频道和电报频道仍在播放旧机器人。可能导致此问题的任何提示? Microsoft托管我机器人的副本吗?我重新启动了所有内容,甚至删除并重新创建了App Service,但无济于事。
Tilo
答案 0 :(得分:0)
您可能已经在仍旧版本的频道上开始对话。即使在代码修改后,BotState仍会保留。
如果要在开发机器人期间手动重置对话框的对话框和状态,可以使用
/deleteprofile
命令删除状态数据。确保在此命令中包含前导空格,以防止通道解释它。将bot部署到生产环境后,您可以对机器人数据进行版本控制,以便在碰撞版本时清除关联的状态数据。使用Bot Builder SDK for Node.js,这可以使用中间件和Bot Builder SDK for .NET来完成,这可以使用
IPostToBot
实现来完成。
有关文档here
的更多详细信息