2011-11-01 18 views

Odpowiedz

6

Podczas korzystania z transportu HTTP serwer wywołuje klienta. Aby to zadziałało, klient musi znajdować się w publicznym punkcie końcowym, więc zapory i co trzeba będzie trzeba odpowiednio skonfigurować.

Od http://msdn.microsoft.com/en-us/magazine/cc163537.aspx:

Ze względu na swoją naturę bezpołączeniowego, HTTP nie może być stosowany do wywołania zwrotne i dlatego nie można użyć wywołania zwrotne nad BasicHttpBinding lub wsHttpBinding. Program Windows Communication Foundation oferuje obsługę oddzwaniania dla NetTcpBinding i NetNamedPipeBinding, ponieważ podstawowy transport jest dwukierunkowy. Aby obsłużyć wywołania zwrotne za pośrednictwem protokołu HTTP, program Windows Communication Foundation zapewnia funkcję WSDualHttpBinding, która faktycznie tworzy dwa kanały HTTP: jeden dla połączeń od klienta do usługi i drugi dla połączeń z usługi do klienta.

A z odniesieniem do WSDualHttpBinding http://msdn.microsoft.com/en-us/library/system.servicemodel.wsdualhttpbinding.aspx:

Wiązanie to wymaga, aby klient ma publicznego identyfikatora URI, który zapewnia punkt końcowy zwrotnej za usługę. Jest to dostarczane przez ClientBaseAddress. Podwójne wiązanie udostępnia adres IP klienta do usługi. Klient powinien używać zabezpieczeń, aby zapewnić, że łączy się tylko z zaufanymi usługami.

+0

Witam @ JeremyMcGee, szukałem tych tematów. Używam prostej aplikacji konsolowej jako klienta, o którym mowa [tutaj] (http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/a-simple-duplex-service-in-wcf/). Rozumiem z twojej odpowiedzi, że klient musi mieć punkt końcowy do trafienia przez serwer, moje pytanie brzmi, czy jest jakiś sposób, aby zobaczyć, jaki jest ten punkt końcowy? – SamGhatak

0

klienta WCF Duplex HTTP (na przykład podczas korzystania z wsDualHttpBinding) rozpocznie serwer też wysłuchać prośby „prawdziwego” serwera, gdy jest oddzwanianie.

To nie zadziała nad NAT, żeby wymienić tylko jedną rzecz.

Powiązane problemy