Search code examples
c#azure-service-fabric

How do I connect to my Service Fabric cluster from C#?


I'm trying to connect to an on-prem Service Fabric cluster from C# code to manage some services:

using System.Fabric;
...
var fabricClient = new FabricClient();
var services = await fabricClient.QueryManager.GetServiceListAsync(new Uri("fabric:/TestConsumer"));
var service = services.FirstOrDefault(e => e.ServiceName.AbsolutePath.Contains("TestManagedConsumer"));
..

(I found the above example code here.)

The problem is that I don't actually know how to connect to the cluster. The above code throws this exception:

System.Fabric.FabricElementNotFoundException: 'Application not found'

Where/how do I specify where my cluster is running? Furthermore do I need some method authentication? If I simply navigate to http://host:19080 I'm able to connect without logging in.

I'm pretty new to Service Fabric, but I've done some digging and I am not turning up much. There seems to be little to no example code out there for this type of thing. Any suggestions?


Solution

  • I feel pretty dumb having found what I was looking for about 5 minutes after posting this question. Doing a search for "new FabricClient" in google turned up some examples, including this page: https://github.com/Microsoft/azure-docs/blob/master/articles/service-fabric/service-fabric-connect-to-secure-cluster.md, which shows the following example:

    To connect to a remote unsecured cluster, create a FabricClient instance and provide the cluster address:

    FabricClient fabricClient = new FabricClient("clustername.westus.cloudapp.azure.com:19000");
    

    I was able to connect to my cluster with this code.

    There is also some good example code here: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-remove-applications-fabricclient