Partager via


Multiple Contracts

L'exemple Multiples Contracts montre comment implémenter plusieurs contrats sur un service et comment configurer des points de terminaison pour communiquer avec chacun des contrats implémentés. Cet exemple est basé sur Getting Started, exemple. Le service a été modifié afin de définir deux contrats, le contrat ICalculator et le contrat ICalculatorSession.

ms751424.note(fr-fr,VS.90).gifRemarque :
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent en fin de rubrique.

La classe de service implémente à la fois les contrats ICalculator et ICalculatorSession. Vu que l'un des contrats requiert une session, le service utilise le mode d'instance PerSession pour maintenir l'état sur la durée de vie de la session.

La configuration du service a été modifiée afin de définir deux points de terminaison et exposer chaque contrat. Le point de terminaison ICalculator est exposé à l'adresse de base à l'aide d'une basicHttpBinding. Le point de terminaison ICalculatorSession est exposé à l'adresse/la session de base à l'aide d'une wsHttpBinding avec l'attribut bindingConfiguration ayant la valeur BindingWithSession, comme le montre l'exemple de configuration suivant.

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

Le code client généré inclut maintenant une classe de client pour le contrat ICalculator d'origine et pour le nouveau contrat ICalculatorSession. La configuration et le code client ont été modifiés pour communiquer avec chaque contrat au point de terminaison de service approprié.

Le client est une application console Windows (.exe). Le service est hébergé par les services IIS (Internet Information Services).

La fenêtre de console cliente affiche les opérations envoyées à chacun des points de terminaison, d'abord le point de terminaison de base, puis le point de terminaison sécurisé.

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

  1. Assurez-vous d'avoir effectué la procédure indiquée à la section 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, suivez les instructions indiquées dans Génération des exemples Windows Communication Foundation.

  3. Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.