Service Fabric Actor 备份在 1 个参与者上工作,在所有其他参与者上失败



我有一个SF应用程序,在一个公共项目中部署了5个Actor。我需要备份这些参与者的状态。

现在我在单节点开发集群上。 我按照文档说明进行操作,1 个演员完美运行,备份和还原。当我尝试对其他参与者执行相同的操作时,备份失败。失败参与者的 Actor 服务未附加到我的扩展 actor 服务,而是附加到基本服务,因此当我尝试调用备份逻辑时,我会收到"接口未实现"异常。

如果我逐步调试到一个 actor 方法并观察 ActorService 属性,我会确认它没有附加到我的扩展类,它使用的是基类:

Microsoft.ServiceFabric.Actor.Runtime.ActorService

工作的演员具有我的扩展类类型的演员服务:

ExtActorService.MyActorService

我为所有演员做完全相同的事情,为什么有些演员没有在我的自定义课程中注册?

我自己解决了这个问题。 代码是正确的,是Visual studio没有将更新的包正确发布到群集。即使由于某种原因我没有遇到构建错误,VS 也会将相同的旧包发布到集群。我在集群管理器上删除了整个项目,并在VS中重建了它,然后再次部署,此时所有参与者的行为都正确并执行备份和还原。问题解决了。

最新更新