使用Microsoft通过远程处理V1呼叫服务.ServiceFabric.服务.远程3.2.162



我有多个使用远程处理V1的服务和使用V2_1的新服务。

使用Microsoft从asp.net核心2.1应用程序调用V2_1服务。ServiceFabric。服务。远程版本3.2.162没有问题。但我不能调用"旧的"V1服务,因为它试图通过V2_1连接。第一次抛出异常:

NamedEndpoint 'V2_1Listener' not found in the address '{"Endpoints":{"":"DESKTOP-XX:33016+086fcdfa-9eba-49e0-8953-6fae844d8cf0-131779318708109471-d1b542d1-71bb-40a8-b22d-d0aabc9f4f5c"}}' for partition '086fcdfa-9eba-49e0-8953-6fae844d8cf0'

第二次挂起时,占用了大量的CPU。

创建自定义ServiceProxyFactory的解决方法不再工作,因为命名空间Microsoft。ServiceFabric。服务。Remoting。在3.2.162 中删除V1

因此,我决定按照升级步骤升级V1服务,并添加一个额外的V2_1侦听器。但在应对了这条线之后:

[assembly: FabricTransportServiceRemotingProvider(RemotingListenerVersion = RemotingListenerVersion.V2_1 | RemotingListenerVersion.V1, RemotingClientVersion = RemotingClientVersion.V2_1)]

RemotingListenerVersion。未找到V1。

我不能简单地将V1侦听器更改为V2_1,因为其他服务都依赖于它

我该怎么办?是否可以同时使用V1和V2_1?我有点困惑。

中不支持Service Fabric Remoting V2。NET核心。我不敢相信它没有记录在案。

在我的案例中,我有一个领域项目的目标。NET标准2.0,服务项目引用了该包并确定了目标。NET 4.6.2。

因此,我更改了迁移计划:

  1. 确保域/接口项目的目标是完整的。NET框架,例如,.NET 6.4.2
  2. 在当前V1侦听器旁边添加了一个V2_1侦听器
  3. 更新了所有客户端,因此它们正在使用V2_1
  4. 删除了V1监听器,并将我们的项目切换回。NET标准

最新更新