Динамическое переключение URL-адреса ссылки на веб-службу WCF через файл конфигурации

41

Как вы динамически переключаете URL-адрес URL-адреса ссылки веб-службы WCF через файл конфигурации?

Теги:
wcf

4 ответа

74
Лучший ответ

Вы просто хотите переопределить URL-адрес, который находится в config, на другой URL-адрес. Скажем, у вас есть тестовое обслуживание и услуга в реальном времени. Вы можете просто сделать это.

client.Endpoint.Address = new EndpointAddress(Server.IsLiveServer() ?
    @"LiveUrl" : @"TestURl"); 

Где эти URL-адреса поступают откуда угодно

  • 2
    Что такое Server.IsLiveServer () :)?
  • 0
    Server.IsLiveServer () - это просто пользовательский метод (вызывайте его как хотите), который проверяет, какой URL использовать.
Показать ещё 2 комментария
22

Просто чтобы развернуть ответ от Erin: -

MyClient client = new MyService.MyClient();
client.Endpoint.Address = new EndpointAddress(new Uri("insert new url here"),
    client.Endpoint.Address.Identity, client.Endpoint.Address.Headers);
client.Open();

НТН!

4

Динамическое переключение отсутствует. Каждый раз, когда вы хотите использовать другой URL-адрес, вы должны создать новый экземпляр прокси-сервера службы (client) и передать конструктору имя EndpointAddress или enpoint.

0

уверен, что вы можете это сделать, посмотрите здесь: Как настроить клиентов для службы wcf?

абсолютно нормально указывать на localhost в разработке и изменять адрес (url) в процессе производства в web.config

  • 1
    Я видел ссылки на URL разработки в 7 файлах: reference.svcmap, .xsd, .wsdl, .disco, .svcinfo & web.config. все ли мне нужно настроить web.config?
  • 0
    ах, ты имеешь в виду, что ты хотел бы изменить все это, отчасти переопределяя жестко закодированные значения, касающиеся web.config?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню