как выполнить динамическую привязку URL-адреса веб-службы

я храню URL-адрес веб-службы в web.config или app.config. когда я вызываю веб-службу, например

 ServiceAvailabilityTestClient.TestClient servAvailClient = new ServiceAvailabilityTestClient.TestClient();
servAvailClient.url= myapp.config url here.
servAvailClient.CallValidateCityPostalCodeZip();

проблема в том, что свойство под названием url не отображается. спс подскажите что делать. я просто добавляю местоположение файла wsdl в качестве ссылки на службу, потому что путь к веб-службе не добавляется. URL-адрес веб-службы, который я пытаюсь добавить в качестве ссылки на веб-службу,

https://devwebservices.purolator.com/EWS/V1/ServiceAvailability/ServiceAvailabilityService.asmx

1) я просто не могу, почему я не могу добавить этот URL-адрес веб-службы в качестве ссылки на службу

2) почему свойство url не отображается на стороне клиента.

может кто подскажет в чем дело. Благодарность


person Thomas    schedule 06.11.2012    source источник


Ответы (2)


Вы используете раздел конфигурации <System.ServiceModel/>? Если это так, вам не нужно ничего делать - URL-адрес будет загружен из раздела <client/> конфигурации при создании канала.

person tom redfern    schedule 06.11.2012
comment
как я могу определить, что веб-служба была разработана классической веб-службой или wcf, если в URL-адресе веб-службы нет расширения. - person Thomas; 06.11.2012

Вы можете сделать это через сгенерированный клиент или ChannelFactory:

var client = ChannelFactory(IWcfService).CreateChannel(Binding, ServiceModel.EndpointAdress)

or 

var client = New Client(binding, RemoteAdress)

EndpointAdress просто принимает строку или uri в конструкторе, например, http://yourservice.asmx

person msjonathan    schedule 06.11.2012
comment
как я могу определить, что веб-служба была разработана классической веб-службой или wcf, если в URL-адресе веб-службы нет расширения. - person Thomas; 06.11.2012