Dynamic Reconfiguration
Cet exemple illustre le service de routage Windows Communication Foundation (WCF). Le service de routage est un composant WCF qui facilite l'inclusion d'un routeur basé sur le contenu dans votre application. Cet exemple adapte l'exemple WCF Calculator standard pour communiquer à l'aide du service de routage. Il montre comment le service de routage peut être reconfiguré dynamiquement pendant l'exécution.
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WCF\Basic\RoutingServices\DynamicReconfiguration
|
Détails de l'exemple
Pour reconfigurer dynamiquement le service de routage (Routing Service) pendant l'exécution, cet exemple déclenche toutes les cinq secondes un minuteur qui crée un objet RoutingConfiguration et l'applique. Cette configuration fait référence au point de terminaison soit Regular Calculator, soit Rounding Calculator. Les messages retournés à l'application Calculator Client proviennent de l'un ou l'autre de ces services, selon le service de routage configuré pour assurer le routage à ce moment-là.
Il est fait appel à la capacité de reconfiguration dynamique du service de routage via un comportement personnalisé. Ce comportement personnalisé joint une extension de service contenant un simple minuteur de thread qui se déclenche toutes les cinq secondes, ce qui aboutit à un rappel à la méthode UpdateRules
. Ce rappel crée et applique la nouvelle configuration de routage. Dans un déploiement réel, ce rappel interviendrait probablement suite à un autre type d'événement, comme une notification d'événements SQL ou une annonce WS-Discovery.
Pour utiliser cet exemple
À l'aide de Visual Studio 2010, ouvrez DynamicReconfiguration.sln.
Pour ouvrir l'Explorateur de solutions, sélectionnez Explorateur de solutions dans le menu Affichage.
Appuyez sur F5 ou F6 dans Visual Studio.
Si vous souhaitez lancer automatiquement les projets nécessaires lorsque vous appuyez sur F5, cliquez avec le bouton droit sur la solution et sélectionnez Propriétés. Sélectionnez le nœud Projet de démarrage sous Propriétés communes dans le volet gauche. Activez la case d'option Plusieurs projets de démarrage et définissez tous les projets de sorte qu'ils disposent de l'action Démarrer.
Si vous générez le projet avec F6, vous devez démarrer les applications suivantes :
Client Calculator (./CalculatorClient/bin/client.exe)
Service Calculator (./CalculatorService/bin/service.exe)
Service Rounding Calculator (./RoundingCalcService/bin/service.exe)
RoutingService (./RoutingService/bin/RoutingService.exe)
Dans la fenêtre de console du client Calculator, appuyez sur ENTRÉE pour démarrer le client et appeler les opérations du service Calculator.
Le service de routage route dynamiquement des messages en alternant entre Rounding Calculator et Regular Calculator, étant donné que la configuration du routage change de configuration de façon dynamique toutes les cinq secondes. Les sorties fournies dans la fenêtre de console du client diffèrent donc en fonction du point de terminaison auquel le service de routage envoie les messages.
Appuyez sur ENTRÉE à plusieurs reprises pendant plus de cinq secondes et observez la modification dans les résultats du service.
Voici la sortie retournée si le service de routage est configuré pour router les messages vers le service Rounding Calculator.
Add(100,15.99) = 116
Subtract(145,76.54) = 68.5
Multiply(9,81.25) = 731.2
Divide(22,7) = 3.1Voici la sortie retournée si le service de routage est configuré pour router les messages vers le service Regular Calculator.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Le service Calculator et le service Rounding Calculator génèrent également un journal des opérations appelé dans leur fenêtre de console.
Dans la fenêtre de console du client, tapez quit et appuyez sur ENTRÉE pour quitter.
Appuyez sur ENTRÉE dans les fenêtres de console des services pour les arrêter.
Scénario
Cet exemple illustre l'utilisation du routeur en tant que routeur basé sur le contenu qui autorise l'exposition via un même point de terminaison de plusieurs types ou implémentations de services.
Scénario réel
Contoso souhaite virtualiser tous ses services afin de n'exposer publiquement qu'un seul point de terminaison via lequel donner accès à différents types de services. Dans ce cas, la société utilise les fonctions de routage basé sur le contenu du service de routage afin de déterminer l'endroit où doivent être envoyées les demandes entrantes.