Что происходит, когда клиент WCF указывает несколько конечных точек для одного и того же контракта?
-
19-09-2019 - |
Вопрос
Будет ли он поглощать все из них?Будет ли это генерировать исключение?
Решение
У вас может быть несколько конечных точек для одного и того же контракта и разные адреса в конфигурации клиента, без проблем.
Они должны быть разделены уникальным 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");
Вы больше не можете просто создать экземпляр своего клиента и ожидать, что он найдет «конечную» точку для использования, поскольку их несколько (и, к сожалению, невозможно определить одну как «по умолчанию», которая будет использоваться, если ничего не указано).
В остальном - никаких проблем, я думаю, возникнуть не должно.
Не связан с StackOverflow