Управление несколькими конечными точками WCF для одной и той же службы - PullRequest
5 голосов
/ 13 апреля 2010

Я создаю одно приложение, которое использует WCF для вызова нескольких внешних конечных точек. Все удаленные конечные точки идентичны, за исключением URI. Я хотел бы рассматривать их как пул: добавлять и удалять конечные точки через конфигурацию и заставить приложение понимать, что делать.

Мой первоначальный план состоял в том, чтобы определить одно конечное значение в app.config, затем перебрать мой список конечных точек и обновить client.Endpoint.Address на лету, чтобы он указывал на нужное место. К сожалению, это свойство доступно только для чтения, что делает этот план неосуществимым.

Я немного озадачен здесь. Любые предложения о том, как я мог бы сделать это?

Ответы [ 3 ]

1 голос
/ 13 апреля 2010

Как: создать конечную точку службы в коде показывает, как управлять конечными точками службы в коде, а не в конфигурации.

0 голосов
/ 06 мая 2010

Сохраните адреса конечных точек в таблице БД и используйте предложение Джейсона для создания конечных точек в коде. Когда появляется новая конечная точка, вы просто добавляете в таблицу еще одну строку и заставляете сервис повторно запрашивать таблицу конечных точек.

Как: создать конечную точку службы в коде http://msdn.microsoft.com/en-us/library/ms731080.aspx

0 голосов
/ 13 апреля 2010

Вы пробовали отдельное имя, которое передается конструктору клиента?

          <endpoint address="http://localhost:18000/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="BasicHttpBinding_IMyService" />
          <endpoint address="http://localhost:18001/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="MyService_Secondary" />
          <endpoint address="http://localhost:18002/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyServiceReference.IMyService" name="MyService_Tertiary" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...