2
votes

When trying to connect to a remote dev cluster using the following sample code:

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

I get the following error:

System.Fabric.FabricException : The supplied address was invalid

Note that this code works fine when ran locally from the dev cluster machine. The Dev cluster manifest file has been modified to listen on the machine IP address. The remote machine is a Windows 7. All Service Fabric assemblies were copied over to the executable folder.

How does a client call using the "fabric:/" scheme work behind the scenes? How does a client specify which cluster it is targeting for a fabric call?

1

1 Answers

4
votes

Actor proxies depend on platform services that are not exposed on public ports. As a result, proxies cannot communicate with actor services on remote machines. They are intended for inter-service communication within the cluster. The general pattern is to create a gateway service within the cluster to provide an ingress point on a public port, which can then relay requests to your actors.