private async Task <IRingMasterRequestHandler> ConnectToRingMaster(long iteration, CancellationToken cancellationToken) { using (var serviceDiscovery = new ServiceDiscovery()) { IReadOnlyList <Uri> endpoints = await serviceDiscovery.GetServiceEndpoints(this.ringMasterServiceUri, ServiceEndpointName); if (endpoints.Count == 0 || string.IsNullOrEmpty(endpoints[0].Host) || endpoints[0].Port <= 0) { return(null); } var configuration = new RingMasterClient.Configuration(); string connectionString = $"{endpoints[0].Host}:{endpoints[0].Port}"; RingMasterWatchdogEventSource.Log.ConnectToRingMaster(iteration, connectionString); return(new RingMasterClient(connectionString, configuration, null, cancellationToken)); } }