Udostępnij za pośrednictwem


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 rozpoczynaniu pracy. Usługa została zmodyfikowana w celu zdefiniowania dwóch kontraktów, ICalculator kontraktu i kontraktu ICalculatorSession .

Uwaga

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

Klasa usługi implementuje zarówno kontrakty, jak ICalculator i 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 ICalculatorSession końcowy jest uwidaczniony w baseaddress/session przy użyciu wsHttpBinding elementu z atrybutem ustawionym bindingConfiguration 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ład

  1. Upewnij się, że wykonano procedurę instalacji jednorazowej 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 temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

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