РЕДАКТИРОВАТЬ - я, вероятно, должен упомянуть, что мы используем веб-сервисы в стиле WCF, которые требуют, чтобы привязки генерировались с помощью SISvcUtil.exe
(отсюда и класс WebServiceClient).
Мы делаем нечто подобное, когда у нас есть тестовый сервер и рабочий сервер, и просто изменить URL-адрес, на который указывает веб-служба. Очевидно, это предполагает, что веб-сервис, размещенный во всех разных местах, одинаков ...
При создании объекта Client, который использует веб-сервис, вам необходимо указать привязки и адрес конечной точки, вы можете просто изменить строку адреса конечной точки так, чтобы она указывала на соответствующий сервер. Код ниже должен дать вам представление о том, как это сделать ...
BasicHttpBinding binding = new BasicHttpBinding();
binding.OpenTimeout = new TimeSpan(0,1,0);
binding.CloseTimeout = new TimeSpan(0,1,0);
binding.SendTimeout = new TimeSpan(0,1,0);
//snip - any other bindings you need to specify...
string fullDomain;
string domain;
if (local)
domain = "local.server.com";
else
domain = "production.server.com";
fullDomain = string.Format("https://{0}/WebService/Service.svc", domain);
EndpointAddress endpointAddress = new EndpointAddress(fullDomain);
WebServiceClient client = new WebServiceClient(binding, endpointAddress);