Mam zdalny serwis WWW WCF, z którym łączę się z mojej aplikacji.Upewnij się, że wychodzące żądania WCF są wykonywane przy użyciu określonego interfejsu sieciowego.
Wniosek może być uruchomiony na serwerze z wieloma adresami IP (lub wieloma interfejsami sieciowymi fizycznych)
muszę się upewnić, że mogę kontrolować, które adres IP jest używany do żądania wychodzącego, a nie tylko używając "preferowanego" interfejsu zgodnie ze zwykłymi regułami metrycznymi.
Powodem tego jest to, że wiele kopii oprogramowania zostanie uruchomionych na tym samym komputerze, z których każdy jest powiązany z określonym adresem IP dla własnych operacji, a podłączona usługa zdalna musi wiedzieć, który z nich jest używany. aby połączyć się z nim później (ponieważ błędny adres oznacza połączenie z niewłaściwą usługą)
Przy starszych usługach ASMX odbywa się to poprzez przesłonięcie GetWebRequest(Uri uri)
w klasie cząstkowej wygenerowanej dla usługi. Ale nie mogę w ogóle dowiedzieć się, jak to zrobić z WCF.
Na unrelated SO post, MVP @JohnSaunders zasugerował, że może to być możliwe poprzez przejęcie całego mechanizmu transportu używanego przez WCF. Ale jeszcze nie wiem, jak to zrobić.
Co powiecie na http://stackoverflow.com/questions/3249846/specify-the-outgoing-ip-address-to-use-w-wcf-client –
@BradChristie Pierwsza odpowiedź to poziom operacyjny, druga odpowiedź nie stosuje się do WCF i stosuje się tylko do nieprzetworzonych żądań SOAP, stąd dlaczego to pytanie nie ma zaakceptowanej odpowiedzi. – PhonicUK
BTW, w zależności od adresu IP, aby zdecydować, z którym połączeniem się jest ... rozwiązaniem nieoptymalnym. –