0

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

现在我在一个单节点开发集群上。我按照文档说明进行操作,1 个演员完美地工作,备份和恢复。当我尝试对其他演员做同样的事情时,备份失败。失败演员的演员服务没有附加到我的扩展演员服务,而是附加到基础服务,所以当我尝试调用我的备份逻辑时,我得到“接口未实现”异常。

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

Microsoft.ServiceFabric.Actors.Runtime.ActorService

代替工作的演员具有我的扩展类类型的 ActorService :

ExtActorService.MyActorService

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

4

1 回答 1

0

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

于 2019-08-30T16:44:27.260 回答