Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’exemple MultipleContracts 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 la section Getting Started. Le service a été modifié pour définir deux contrats, le ICalculator contrat et le ICalculatorSession contrat.
Remarque
La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.
La classe de service implémente à la fois les contrats ICalculator et ICalculatorSession. Étant donné que l’un des contrats nécessite une session, le service utilise le PerSession mode d’instance pour maintenir l’état pendant la durée de vie de la session.
La configuration du service a été modifiée pour définir deux points de terminaison pour 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:
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>
Le code client généré inclut désormais une classe cliente pour le contrat d’origine ICalculator et le nouveau ICalculatorSession contrat. La configuration et le code du client ont été modifiés pour communiquer avec chaque contrat au niveau du point de terminaison de service approprié.
Le client est une application windows console (.exe). Le service est hébergé par Internet Information Services (IIS).
La fenêtre de console cliente affiche les opérations envoyées à chacun des points de terminaison, tout d’abord le point de terminaison de base, suivi du point de terminaison sécurisé.
Pour configurer, générer et exécuter l’exemple
Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.
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.
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.