Ответ 1
Я использую следующее, которое отлично работает:
ServiceReference1.wsSoapClient ws= new ServiceReference1.wsSoapClient();
ws.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://xxx/myservice.asmx");
У меня есть SOAP Webservice, доступный на нескольких серверах, имея несколько конечных точек. Я хочу, чтобы не добавлять несколько ссылок на службы (С# SOAP Port Clients) с разными именами, просто чтобы поговорить с этими службами, поскольку API точно такой же.
Есть ли способ настроить URI конечной точки во время выполнения?
Я использую следующее, которое отлично работает:
ServiceReference1.wsSoapClient ws= new ServiceReference1.wsSoapClient();
ws.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://xxx/myservice.asmx");
Мне тоже не удалось найти это. Я, наконец, просто заимствовал привязку конфигурации и сделал это:
private static wsXXXX.IwsXXXXClient wsXXXXClientByServer(string sServer)
{
// strangely, these two are equivalent
WSHttpBinding binding = new WSHttpBinding("WSHttpBinding_IwsXXXX");
// WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message, false);
EndpointAddress remoteAddress = new EndpointAddress(new Uri(string.Format("http://{0}:8732/wsXXXX/", sServer)), new UpnEndpointIdentity("[email protected]"));
return new wsXXXX.IwsXXXXClient(binding, remoteAddress);
}