Позвоните в службу через удаленное взаимодействие 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.

Для этого я изменил план миграции:

  1. Убедитесь, что проекты домена / интерфейса нацелены на полную сетевую среду, т.е.NET642
  2. Добавьте слушателя V2_1 рядом с текущим слушателем V1, ссылка.
  3. Обновите все клиенты, чтобы они использовали V2_1
  4. Удалите слушателя V1 и переключите наш проект обратно на нестандартный.
Другие вопросы по тегам