Вызов клиента Azure Service Fabric к службе субъекта с удаленного компьютера возвращает ошибку неизвестного адреса

При попытке подключения к удаленному кластеру разработки с помощью следующего примера кода:

var proxy = ActorProxy.Create<IActor1_NoS>(ActorId.NewId(), "fabric:/applicationname");

Я получаю следующую ошибку:

System.Fabric.FabricException: предоставленный адрес недействителен

Обратите внимание, что этот код отлично работает при локальном запуске с компьютера кластера разработки. Файл манифеста кластера Dev был изменен для прослушивания IP-адреса компьютера. Удаленный компьютер — это Windows 7. Все сборки Service Fabric были скопированы в исполняемую папку.

Как за кулисами работает клиентский вызов по схеме «fabric:/»? Как клиент указывает, на какой кластер он нацелен для вызова структуры?


person ack    schedule 18.09.2015    source источник


Ответы (1)


Прокси-серверы субъектов зависят от служб платформы, которые не доступны через общедоступные порты. В результате прокси-серверы не могут взаимодействовать со службами субъектов на удаленных компьютерах. Они предназначены для межсервисного взаимодействия внутри кластера. Общий шаблон заключается в создании службы шлюза в кластере для обеспечения точки входа на общедоступном порту, который затем может ретранслировать запросы вашим субъектам.

person Sean McKenna    schedule 30.09.2015
comment
Применяется ли тот же принцип к надежным службам и удаленному взаимодействию (по умолчанию)? - person Mikhail Shilkov; 04.03.2016
comment
Да, они концептуально эквивалентны. - person Sean McKenna; 05.03.2016
comment
Как кто-то настроил бы такую ​​службу шлюза? Я также пытаюсь предоставить сервер актера клиенту актера на другом компьютере. - person Derek Peirce; 14.03.2016