void worker_DoWork(object sender, DoWorkEventArgs e) { //validate args if (String.IsNullOrEmpty(AWSAccessKey) || String.IsNullOrEmpty(AWSSecretKey)) { e.Result = null; return; } //ec2 client var ec2 = AWSClientFactory.CreateAmazonEC2Client(AWSAccessKey, AWSSecretKey, new AmazonEC2Config().WithServiceURL(RegionHelper.EC2EndpointForRegion(EC2Region)) ); var elbClient = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(AWSAccessKey, AWSSecretKey, new AmazonElasticLoadBalancingConfig() { ServiceURL = RegionHelper.ELBEndpointForRegion(EC2Region).Replace("http:", "https:") }); DescribeLoadBalancersResponse loadBalancers = null; try { loadBalancers = elbClient.DescribeLoadBalancers(); } catch (WebException wex) { var response = wex.Response as HttpWebResponse; var responsveBody = new StreamReader(response.GetResponseStream()).ReadToEnd(); int a = 5; } e.Result = loadBalancers.DescribeLoadBalancersResult.LoadBalancerDescriptions. Select(lb => new AWSLoadBalancerServersRetreiverCompleteEventArgs.LoadBalancer { LoadBalancerName = lb.LoadBalancerName, InstanceNames = lb.Instances.Select(instance => instance.InstanceId).ToList() }). ToList(); }