Использование SOAP-клиента C # Service Reference с разными URI конечной точки - PullRequest
16 голосов
/ 09 августа 2010

У меня есть SOAP Webservice, который доступен на нескольких серверах, таким образом, имеет несколько конечных точек.Я хочу избегать добавления нескольких ссылок на службы (клиенты портов C # SOAP) с разными именами только для того, чтобы общаться с этими службами, поскольку API точно такой же.

Ответы [ 2 ]

23 голосов
/ 20 января 2012

Я использую следующее, что прекрасно работает:

        ServiceReference1.wsSoapClient ws= new ServiceReference1.wsSoapClient();
        ws.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://xxx/myservice.asmx");
5 голосов
/ 16 сентября 2010

У меня тоже были проблемы с поиском этого.Я, наконец, просто позаимствовал привязку конфигурации и сделал это:

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("PagingService@rl.gov"));

    return new wsXXXX.IwsXXXXClient(binding, remoteAddress);
}
...