azure-service-fabric - Service Fabric Actor 备份适用于 1 个参与者,而其他所有参与者都失败
问题描述
我有一个 SF 应用程序,在一个常见项目中部署了 5 个参与者。我需要备份这些参与者的状态。
现在我在一个单节点开发集群上。我按照文档说明进行操作,1 个演员完美地工作,备份和恢复。当我尝试对其他演员做同样的事情时,备份失败。失败演员的演员服务没有附加到我的扩展演员服务,而是附加到基础服务,所以当我尝试调用我的备份逻辑时,我得到“接口未实现”异常。
如果我将调试单步调试到一个演员方法并观察 ActorService 属性,我会确认它没有附加到我的扩展类,它使用的是基类:
Microsoft.ServiceFabric.Actors.Runtime.ActorService
代替工作的演员具有我的扩展类类型的 ActorService :
ExtActorService.MyActorService
我为所有演员做完全相同的事情,为什么有些没有在我的自定义类中注册?
解决方案
我自己解决了这个问题。代码是正确的,是 Visual Studio 没有将更新的包正确发布到集群。即使由于某种原因我没有构建错误,VS 也会将相同的旧包发布到集群。我在集群管理器上删除了整个项目并在 VS 中重建它,然后再次部署,此时所有参与者的行为都正确并进行备份和恢复。问题解决了。
推荐阅读
- python - 随机种子在系统之间是否兼容?
- r - dplyr 在循环中使用 complete() 来保留因子级别
- python - 功能列表
- javascript - 未捕获的类型错误:仅在主页上无法读取 null 的属性“addEventListener”
- julia - 使用/导入的 Julia 元编程
- vba - 如何使用 VBA 查找 SQL 的服务器名和用户名?
- ios - 使用委托协议将数据从 tableView Cell 传递到另一个视图控制器
- scala - 为什么 maven 在进行全新安装时会给我这个 Scala 错误
- android - 活动窗口隐藏汉堡图标和导航工具栏
- python-3.x - 使用 PyQT5 在 QLCDNumber 上显示传感器输出