Connect-ServiceFabricCluster fails to contact naming server on remote Azure Service Fabric cluster

Aaron Schnieder picture Aaron Schnieder · Apr 13, 2016 · Viewed 7.6k times · Source

I provisioned an Azure Service Fabric cluster in North Central US. I was able to initially publish my Service Fabric application to the cluster using Visual Studio and everything was running fine. I am now trying to upgrade the application via another Visual Studio publish, but the publish upgrade always fails with an Operation Timed Out error.

Alternatively, I tried to just connect to the Service Fabric cluster using Powershell. I can't seem to do that either as I get the following failure to connect to the Naming Service.

How do I get things working again?

PS C:\WINDOWS\system32> Connect-ServiceFabricCluster @connectArgs WARNING: Failed to contact Naming Service. Attempting to contact Failover Manager Service... WARNING: Failed to contact Failover Manager Service, Attempting to contact FMM... False Connect-ServiceFabricCluster : One or more errors occurred. At line:1 char:1 + Connect-ServiceFabricCluster @connectArgs + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Connect-ServiceFabricCluster], AggregateException + FullyQualifiedErrorId : CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster

Answer

Rim picture Rim · Apr 3, 2017

I was getting the same error in PowerShell and this is what worked for me: (based on https://blogs.msdn.microsoft.com/ncdevguy/2016/12/25/connecting-to-a-remote-azure-service-fabric-cluster-using-powershell/)

$clusterFQDN = <your_cluster_FQDN>
$clusterEndpoint = $clusterFQDN+':19000'
$certThumbprint = (Get-ChildItem -Path Cert:\CurrentUser\My | where {$_.Subject -like "*$clusterFQDN*" }).Thumbprint
Connect-ServiceFabricCluster -ConnectionEndpoint $clusterEndpoint -KeepAliveIntervalInSec 10 -X509Credential -ServerCertThumbprint $certThumbprint -FindType FindByThumbprint -FindValue $certThumbprint -StoreLocation CurrentUser -StoreName My

NOTE: The KeepAliveIntervalInSec parameter is optional but the rest are mandatory.

NOTE: This assumes your management cert is installed in CurrentUser\My (Current User->Personal in Certificates MMC Snap-in).

Since the OP didn't specify what @connectArgs was, cannot be sure if my answer has been tried by the OP or not.