Wiele punktów końcowych
W przykładzie MultipleEndpoints pokazano, jak skonfigurować wiele punktów końcowych w usłudze i jak komunikować się z każdym punktem końcowym z klienta. Ten przykład jest oparty na rozpoczynaniu pracy. Konfiguracja usługi została zmodyfikowana w celu zdefiniowania dwóch punktów końcowych, które obsługują ICalculator
kontrakt, ale każdy pod innym adresem przy użyciu innego powiązania. Konfiguracja klienta i kod zostały zmodyfikowane w celu komunikowania się z obydwoma punktami końcowymi usługi.
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Plik Web.config usługi został zmodyfikowany w celu zdefiniowania dwóch punktów końcowych, z których każdy obsługuje ten sam ICalculator
kontrakt, ale pod różnymi adresami przy użyciu różnych powiązań. Pierwszy punkt końcowy jest definiowany na adresie podstawowym przy użyciu basicHttpBinding
powiązania, które nie ma włączonego zabezpieczeń. Drugi punkt końcowy jest definiowany w lokalizacji {baseaddress}/secure przy użyciu wsHttpBinding
powiązania, które jest domyślnie bezpieczne przy użyciu zabezpieczeń WS-Security z uwierzytelnianiem systemu Windows.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- This endpoint is exposed at the base address provided by host:
http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- secure endpoint exposed at {base address}/secure:
http://localhost/servicemodelsamples/service.svc/secure -->
<endpoint address="secure"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
Oba punkty końcowe są również konfigurowane na kliencie. Te punkty końcowe otrzymują nazwy, aby obiekt wywołujący mógł przekazać żądaną nazwę punktu końcowego do konstruktora klienta.
<client>
<!-- Passing "basic" into the constructor of the CalculatorClient
class selects this endpoint.-->
<endpoint name="basic"
address="http://localhost/servicemodelsamples/service.svc"
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- Passing "secure" into the constructor of the CalculatorClient
class selects this endpoint.-->
<endpoint name="secure"
address="http://localhost/servicemodelsamples/service.svc/secure"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
Klient używa obu punktów końcowych, jak pokazano w poniższym kodzie.
static void Main()
{
// Create a client to the basic endpoint configuration.
CalculatorClient client = new CalculatorClient("basic");
Console.WriteLine("Communicate with basic endpoint.");
// call operations
DoCalculations(client);
// Close the client and release resources.
client.Close();
// Create a client to the secure endpoint configuration.
client = new CalculatorClient("secure");
Console.WriteLine("Communicate with secure endpoint.");
// Call operations.
DoCalculations(client);
// Close the client and release resources.
client.Close();
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
}
Po uruchomieniu klienta wyświetlane są interakcje z obydwoma punktami końcowymi.
Communicate with basic endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Communicate with secure endpoint.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
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.