Azure service fabric ServiceProxy.Create请求主副本将返回辅助副本

Azure service fabric ServiceProxy.Create请求主副本将返回辅助副本,azure-service-fabric,service-fabric-stateful,service-fabric-actor,Azure Service Fabric,Service Fabric Stateful,Service Fabric Actor,我使用远程处理从不同的参与者类型访问服务。他们通过基类中的共享代码来实现这一点,调用ServiceProxy.Create方法 我有访问主副本和次副本的用例,并在指定TargetReplicaSelector的地方使用方法重载。这通常很好用 在升级服务(不更改代码,只测试运行时升级如何影响通信)后,一些参与者(总是同一类型!)在调用ServiceProxy.Create时获得对次副本的引用,即使我特别要求使用TargetReplicaSelector.PrimaryReplica参数获取主副本。

我使用远程处理从不同的参与者类型访问服务。他们通过基类中的共享代码来实现这一点,调用ServiceProxy.Create方法

我有访问主副本和次副本的用例,并在指定TargetReplicaSelector的地方使用方法重载。这通常很好用

在升级服务(不更改代码,只测试运行时升级如何影响通信)后,一些参与者(总是同一类型!)在调用ServiceProxy.Create时获得对次副本的引用,即使我特别要求使用TargetReplicaSelector.PrimaryReplica参数获取主副本。 其他类型的演员应该继续担任主要角色

这怎么可能

编辑1:我知道在升级过程中,主设备将变为辅助设备,任何辅助设备都将变为主设备。在升级过程中,我可以在资源管理器中看到这一点

所以,当从某些参与者类型调用ServiceProxy.Create时,它似乎保留了一些关于哪个副本是主副本的陈旧信息? 我以为ServiceProxy会自动检测到这些更改? 这是一个错误还是我做错了什么

Edit2:我在以下地址找到了此评论:

Yongjun Dec 7,2016如何处置/断开与远程服务的连接

在我们的产品中,在有状态服务A中,它将连接到另一个 通过ServiceProxy创建有状态服务B。创建

但在服务切换后,它仍然与 服务B使用“netstat-ano”,如果服务A切换到主服务 同样,它将有两个到服务B的连接

似乎是同样的问题


问题:如何避免这个问题?

看起来这是在SF问题中讨论的问题,我没有找到真正的解决方案。但在升级到最新的运行时和SDK版本后,它最终设法解决了地址问题,尽管在服务升级后问题仍然存在一段时间。在将多个有状态服务放入一个应用程序后,问题完全消失了。看起来这在SF问题中正在讨论,但我没有找到真正的解决方案。但在升级到最新的运行时和SDK版本后,它最终设法解决了地址问题,尽管在服务升级后问题仍然存在一段时间。在将多个有状态服务放入应用程序后,问题完全消失了。