2015-05-29 2 views
0

У меня есть служба WCF. Он использует настройки из файла конфигурации. Он содержит некоторые вспомогательные службы, работающие через http, net.tcp и т. Д. Я хотел бы создать метод, который будет возвращать все настроенные URL-адреса конечных точек. Он будет использоваться для предоставления клиентскому приложению возможности получать строки URL.Как перечислить URL-адреса конечных точек?

Как я могу это сделать в службе WCF?

+0

Почему нет клиентского приложения просто получить метаданные службы? –

+0

В службе WCF есть несколько служб. Кроме того, некоторые службы имеют несколько точек доступа (это может быть http, net.tcp и т. Д.). Для получения метаданных службы необходимо знать ее URL. Я хочу предоставить метод RESTful, клиентское приложение может запрашивать и получать все адреса конечных точек, а затем делать то, что ему нужно. Это утилита конфигурации клиента. По крайней мере, он будет отображать адреса. – Oleg

+0

* Чтобы получить метаданные службы, необходимо знать ее URL. * - вся ссылка на метаданные - вы хотите, чтобы другие люди знали URL. –

ответ

1

Вы можете попробовать что-то вроде этого:

private static List<Uri> GetClientsInfo() 
    { 
     var adressList = new List<Uri>(); 
     var clientSection = (ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection); 
     if (clientSection != null) 
     { 
      foreach (ChannelEndpointElement endPoint in clientSection.Endpoints) 
      { 
       adressList.Add(endPoint.Address); 
      } 
     } 

     return adressList; 
    } 

Также вы можете использовать «WebConfigurationManager» вместо «ConfigurationManager» (в зависимости от типа вашего приложения, больше здесь What's the difference between the WebConfigurationManager and the ConfigurationManager?)

Смежные вопросы