Partager via


Plusieurs points de terminaison

L’exemple MultipleEndpoints montre comment configurer plusieurs points de terminaison sur un service et comment communiquer avec chaque point de terminaison à partir d’un client. Cet exemple est basé sur la section Getting Started. La configuration du service a été modifiée pour définir deux points de terminaison qui prennent en charge le ICalculator contrat, mais chacun à une adresse différente à l’aide d’une liaison différente. La configuration et le code du client ont été modifiés pour communiquer avec les deux points de terminaison de service.

Remarque

La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.

Le fichier Web.config de service a été modifié pour définir deux points de terminaison, chacun prenant en charge le même ICalculator contrat, mais à différentes adresses utilisant des liaisons différentes. Le premier point de terminaison est défini à l’adresse de base à l’aide d’une basicHttpBinding liaison, qui n’est pas sécurisée. Le deuxième point de terminaison est défini sur {baseaddress}/secure en utilisant une wsHttpBinding liaison, sécurisée par défaut, avec l'authentification Windows via WS-Security.

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

Les deux points de terminaison sont également configurés sur le client. Ces points de terminaison reçoivent des noms afin que l’appelant puisse transmettre le nom de point de terminaison souhaité dans le constructeur du client.

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

Le client utilise les deux points de terminaison, comme indiqué dans le code suivant.

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();
}

Lorsque vous exécutez le client, les interactions avec les deux points de terminaison sont affichées.

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.

Pour configurer, générer et exécuter l’exemple

  1. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.

  3. Pour exécuter l’exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.