Wird es von allen von ihnen verbrauchen? Wird es eine Ausnahme auslösen?Was passiert, wenn ein WCF-Client mehrere Endpunkte für denselben Vertrag angibt?
6
A
Antwort
11
Sie können mehrere Endpunkte für den gleichen Vertrag und verschiedene Adressen in Ihrem clieint Config haben, kein Problem.
Sie müssen durch ein eindeutiges name=
Attribut auf dem <endpoint>
Tag getrennt sein.
<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>
Wenn Sie Ihren Client-Proxy erstellen, müssen Sie den Namen des Endpunkts Sie verwenden möchten, zur Verfügung zu stellen:
YourClient client = new YourClient("netTcpEndpoint");
Sie können nicht mehr nur Ihre Client instanziiert und erwarten, dass es „das finden "Endpunkt zu verwenden, da es mehrere gibt (und es gibt keine Möglichkeit, eine als" Standard "zu definieren, die verwendet wird, wenn nichts angegeben ist, leider).
Anders als das - keine Probleme auftreten sollten, denke ich.
ya. Es wäre nicht sinnvoll, sich mit ex: basicHttpbinding + wsHttpBinding + netTcpBinding gleichzeitig zu verbinden. – vidalsasoon
@vidal: nicht wirklich, nein :-) Aber Sie ** ** könnten potentitally ein Client über NetTcp gehen und eine andere Client-Instanz über http gehen - wenn Sie jemals zu (nicht sicher brauchen, warum das nötig sein würde - aber Sie ** könnte ** ;-) –
Wenn Sie einen Java-Webclient und einen .Net-Thick-Client für ein reales Beispiel haben. Der Java-Client verwendet http und der .Net-Client verwendet net.tcp – softveda