我有多个使用远程处理 V1 的服务和使用 V2_1 的新服务。
使用 Microsoft.ServiceFabric.Services.Remoting 版本 3.2.162 从 asp.net core 2.1 应用程序调用 V2_1 服务没有问题。但我不能调用“旧”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.Services.Remoting.V1 在 3.2.162 中已删除
所以我决定升级一个 V1 服务,并按照升级步骤添加一个额外的 V2_1 侦听器。但是在处理完这条线之后再次:
[assembly: FabricTransportServiceRemotingProvider(RemotingListenerVersion = RemotingListenerVersion.V2_1 | RemotingListenerVersion.V1, RemotingClientVersion = RemotingClientVersion.V2_1)]
未找到 RemotingListenerVersion.V1。
我不能简单地将 V1 侦听器更改为 V2_1,因为其他服务都依赖于它。
我应该怎么办?是否可以同时使用 V1 和 V2_1?我在这里有点困惑。