Udostępnij za pośrednictwem


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ą WSDualHttpBindingelementu , 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

  1. Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.

  3. 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).

  4. 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 i clientBaseAddress 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>