O que acontece quando um cliente da WCF especifica vários pontos de extremidade para o mesmo contrato?
-
19-09-2019 - |
Pergunta
Isso consumirá de todos eles? Isso vai dar uma exceção?
Solução
Você pode ter vários pontos de extremidade para o mesmo contrato e endereços diferentes em sua configuração de Clieint, sem problemas.
Eles precisam ser separados por um único name=
atributo no <endpoint>
marcação.
<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>
Ao criar seu proxy do cliente, você precisa fornecer o nome do terminal que deseja usar:
YourClient client = new YourClient("netTcpEndpoint");
Você não pode mais instanciar seu cliente e esperar que ele encontre "o" endpoint "para usar, pois existem múltiplos (e não há como definir um como o" padrão "que é usado se nada for especificado, infelizmente).
Fora isso - nenhum problema deve surgir, eu acho.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow