我有一个SF应用程序,在一个常见项目中部署了5个参与者。我需要备份这些参与者的状态。
现在,我在单节点开发集群上。 我遵循了doc的说明,并且1个actor可以完美地工作,备份和还原。当我尝试对其他角色执行相同操作时,备份将失败。失败的actor的Actor服务未附加到我的扩展actor服务上,而是附加到了基础actor服务上,因此当我尝试调用备份逻辑时,出现“接口未实现”异常。
如果我一步一步调试actor方法并观察ActorService属性,我会确认它没有附加到扩展类中,这是使用基类的:
Microsoft.ServiceFabric.Actors.Runtime.ActorService
工作的演员具有我扩展类类型的ActorService:
ExtActorService.MyActorService
我对所有演员都做完全相同的事情,为什么有些演员没有在自定义类中注册?
答案 0 :(得分:0)
我自己解决了这个问题。 代码是正确的,是Visual Studio没有将更新的软件包正确发布到群集中。即使由于某种原因我没有构建错误,VS仍将相同的旧软件包发布到群集中。我删除了集群管理器上的整个项目,并在VS中对其进行了重建,然后再次进行了部署,这时所有参与者都可以正常运行并进行备份和还原。问题解决了。