Scénario:WCF Discovery Service Scope
J'ai plusieurs services que je veux découvrir par des clients différents. L'exécution de la découverte fonctionne parfaitement. Mais maintenant, j'ai différentes versions de ces services pour différentes raisons.
Je pourrais avoir 3 - 4 couches différentes dans mon cycle de vie d'application: production, mise en scène, test et développement.
Je dois prendre en charge les clients que j'ai déployés au cours des 6 derniers mois. Il se peut donc que je doive exécuter 2 à 3 versions des services en même temps. Pas différentes versions du contrat mais des versions légèrement différentes de l'implémentation.
Je pourrais aussi avoir besoin de séparer les services par la catégorie de données qu'ils fournissent. Disons que j'ai une instance du service qui fournit des données américaines et une autre instance qui fournit des données sur le Canada et peut-être une troisième instance qui fournit des données sur l'Australie. Dans certains cas, le service peut avoir plusieurs catégories. Donc, du point de vue du client, si je demande un service basé uniquement sur le contrat, j'obtiendrai peut-être 9 - 15 points de terminaison alors que je veux seulement parler au service Production, US, Version 1.1. Je sais que la portée existe pour le service, mais je n'ai pas réussi à créer une série d'étendues qui permettent le type de flexibilité dont j'ai besoin dans mon environnement.
Je l'exemple précédent je cherchais un service très spécifique mais je pourrais aussi vouloir voir tous les services d'un contrat spécifique pour juste la production n'importe ce que le pays ou la version ils sont. Je pourrais également devoir ajouter des «étendues» supplémentaires dans le mélange. Au total, je pourrais avoir 4 - 6 critères qui sont utilisés comme "portée".
Questions:
est portée la bonne façon de construire ce type de filtrage complexe ou est-ce que je dois faire quelque chose de personnalisé?
Si la portée est la bonne façon de le faire, pouvez-vous me montrer un échantillon que je peux regarder?
Si j'ai besoin de personnaliser, existe-t-il un moyen standard d'étendre le comportement de la "portée" pour que je puisse l'amener à faire ce que je veux faire?
Code Source: