Udostępnij przez


Wiele kontraktów

W przykładzie MultipleContracts pokazano, jak zaimplementować więcej niż jeden kontrakt w usłudze oraz jak skonfigurować punkty końcowe do komunikowania się z każdym z wdrożonych kontraktów. Ten przykład jest oparty na Rozpoczynanie. Usługa została zmodyfikowana, aby zdefiniować dwa kontrakty: ICalculator oraz ICalculatorSession.

Uwaga / Notatka

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Klasa usługi implementuje zarówno kontrakt ICalculator, jak i kontrakt ICalculatorSession. Ponieważ jeden z kontraktów wymaga sesji, usługa używa PerSession trybu wystąpienia do utrzymania stanu w okresie istnienia sesji.

Konfiguracja usługi została zmodyfikowana w celu zdefiniowania dwóch punktów końcowych w celu uwidocznienia każdego kontraktu. Punkt ICalculator końcowy jest uwidaczniony pod adresem podstawowym przy użyciu elementu basicHttpBinding. Punkt końcowy ICalculatorSession został wystawiony w baseaddress/session z elementem wsHttpBinding, którego atrybut bindingConfiguration jest ustawiony na BindingWithSession, jak pokazano w poniższej przykładowej konfiguracji.

<service
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host:
       http://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       http://localhost/servicemodelsamples/service.svc/session -->
  <endpoint address="session"
            binding="wsHttpBinding"
            bindingConfiguration="BindingWithSession"
           contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
  ...
</service>

Wygenerowany kod klienta zawiera teraz klasę klienta zarówno dla oryginalnego ICalculator kontraktu, jak i nowego ICalculatorSession kontraktu. Konfiguracja klienta i kod zostały zmodyfikowane w celu komunikowania się z każdym kontraktem w odpowiednim punkcie końcowym usługi.

Klient jest aplikacją systemu Windows konsoli (.exe). Usługa jest hostowana przez usługi Internet Information Services (IIS).

W oknie konsoli klienta są wyświetlane operacje wysyłane do każdego z punktów końcowych, najpierw podstawowego punktu końcowego, a następnie bezpiecznego punktu końcowego.

Aby skonfigurować, skompilować i uruchomić przykładowy program

  1. Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.

  3. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w Uruchamianie przykładów programu Windows Communication Foundation.