WS Dual Http
W przykładzie DualHttp pokazano, jak skonfigurować WSDualHttpBinding
powiązanie. Ten przykład składa się z programu konsolowego klienta (.exe) i biblioteki usług (.dll) hostowanej przez usługi Internet Information Services (IIS). Usługa implementuje kontrakt dwukierunkowy. Kontrakt jest definiowany przez ICalculatorDuplex
interfejs, który uwidacznia operacje matematyczne (Dodawanie, Odejmowanie, Mnożenie i Dzielenie). W tym przykładzie ICalculatorDuplex
interfejs umożliwia klientowi wykonywanie operacji matematycznych, obliczanie działającego wyniku w sesji. Niezależnie usługa zwraca wyniki w interfejsie ICalculatorDuplexCallback
. Kontrakt dwukierunkowy wymaga sesji, ponieważ należy ustanowić kontekst, aby skorelować zestaw komunikatów wysyłanych między klientem a usługą. Powiązanie WSDualHttpBinding
obsługuje komunikację dwukierunkową.
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Aby skonfigurować punkt końcowy usługi za pomocą WSDualHttpBinding
elementu , określ powiązanie w konfiguracji punktu końcowego, jak pokazano poniżej.
<endpoint address=""
binding="wsDualHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
Na kliencie należy skonfigurować adres, za pomocą którego serwer może nawiązać połączenie z klientem, jak pokazano w poniższej przykładowej konfiguracji.
<system.serviceModel>
<client>
<endpoint address=
"http://localhost/servicemodelsamples/service.svc"
binding="wsDualHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
</client>
<bindings>
<!-- Configure a WSDualHttpBinding that supports duplex -->
<!-- communication. -->
<wsDualHttpBinding>
<binding name="Binding1"
clientBaseAddress="http://localhost:8000/myClient/"
useDefaultWebProxy="true"
bypassProxyOnLocal="false">
</binding>
</wsDualHttpBinding>
</bindings>
</system.serviceModel>
Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Naciśnij klawisz ENTER w oknie klienta, aby zamknąć klienta.
Press <ENTER> to terminate client once the output is displayed.
Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)
Po uruchomieniu przykładu zobaczysz komunikaty zwrócone do klienta w interfejsie wywołania zwrotnego wysłanego z usługi. Każdy wynik pośredni jest wyświetlany, po którym następuje całe równanie po zakończeniu wszystkich operacji. Naciśnij klawisz ENTER, aby zamknąć klienta.
Aby skonfigurować, skompilować i uruchomić przykład
Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.
Ważne
Podczas uruchamiania klienta w konfiguracji między maszynami należy zastąpić localhost zarówno
address
<atrybutem punktu końcowego><elementu klienta>, jak iclientBaseAddress
atrybutem <elementu< powiązania> elementu wsDualHttpBinding> nazwą odpowiedniej maszyny, jak pokazano:<client> <endpoint name = "" address= "http://service_machine_name/servicemodelsamples/service.svc" /> </client> ... <wsDualHttpBinding> <binding name="DuplexBinding" clientBaseAddress= "http://client_machine_name:8000/myClient/"> </binding> </wsDualHttpBinding>