Позвоните в службу через удаленное взаимодействие V1 с Microsoft.ServiceFabric.Services.Remoting 3.2.162
У меня есть несколько сервисов, использующих удаленное взаимодействие V1 и новые сервисы с V2_1.
Вызов служб V2_1 из приложения asp.net core 2.1 с использованием Microsoft.ServiceFabric.Services.Remoting версии 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'
И во второй раз он зависает и использует много ресурсов процессора.
Обходной путь создания пользовательского 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 в целом? Я немного запутался здесь.
1 ответ
SF Remoting V2 не поддерживается в ядре.net: ссылка Не могу поверить, что это не задокументировано.
В моем случае у меня был доменный проект с таргетингом на netstandard 2.0. и сервисный проект ссылался на этот пакет и нацеливался на net462.
Для этого я изменил план миграции:
- Убедитесь, что проекты домена / интерфейса нацелены на полную сетевую среду, т.е.NET642
- Добавьте слушателя V2_1 рядом с текущим слушателем V1, ссылка.
- Обновите все клиенты, чтобы они использовали V2_1
- Удалите слушателя V1 и переключите наш проект обратно на нестандартный.