Что происходит, когда клиент WCF указывает несколько конечных точек для одного и того же контракта?

StackOverflow https://stackoverflow.com/questions/1888233

Вопрос

Будет ли он поглощать все из них?Будет ли это генерировать исключение?

Это было полезно?

Решение

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

Они должны быть разделены уникальным name= атрибут на <endpoint> ярлык.

<client>
  <endpoint name="tcpEndpoint"
            address="net.tcp://server:8888/SomeService"
            binding="netTcpBinding"
            contract="IYourService" />
  <endpoint name="httpEndpoint"
            address="http://server:8777/SomeService"
            binding="basicHttpBinding"
            contract="IYourService" />
</client>

Когда вы создаете клиентский прокси-сервер, вам необходимо указать имя конечной точки, которую вы хотите использовать:

YourClient client = new YourClient("netTcpEndpoint");

Вы больше не можете просто создать экземпляр своего клиента и ожидать, что он найдет «конечную» точку для использования, поскольку их несколько (и, к сожалению, невозможно определить одну как «по умолчанию», которая будет использоваться, если ничего не указано).

В остальном - никаких проблем, я думаю, возникнуть не должно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top