Файл конфигурации вашего клиента может выглядеть примерно так:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<endpoint name="Endpoint1"
address="http://location1.com/LunarChartRestService.svc"
binding="wsHttpBinding"
contract="(whatever-your-contract-is)" />
<endpoint name="Endpoint2"
address="http://location2.com/LunarChartRestService.svc"
binding="wsHttpBinding"
contract="(whatever-your-contract-is)" />
<endpoint name="Endpoint3"
address="http://location3.com/LunarChartRestService.svc"
binding="wsHttpBinding"
contract="(whatever-your-contract-is)" />
</client>
</system.serviceModel>
</configuration>
Затем в коде вы можете создать такую конечную точку (клиентский прокси) на основе ее имени и, таким образом, вы можете выбрать любое местоположение, которое вам нужно. Ничто не мешает вам создавать несколько клиентских прокси! Таким образом, вы можете без проблем подключаться к нескольким конечным точкам сервера, используя несколько клиентских прокси.
В качестве альтернативы, вы также можете, конечно, создать экземпляр «WsHttpBinding» и «EndpointAddress» в коде и установить необходимые свойства (если таковые имеются), а затем вызвать конструктор для прокси клиента с этими готовыми объектами, таким образом переопределить весь цирк app.config и создать то, что вам нужно:
EndpointAddress epa =
new EndpointAddress(new Uri("http://location1.com/LunarChartRestService.svc"));
WSHttpBinding binding = new WSHttpBinding();
Марк