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