2011-01-15 1 views
1

Je commencerai par une explication de ce que j'essaie de faire et de l'environnement/des circonstances impliqués. Je travaille avec un service WCF préexistant (hébergé en tant que service Windows) que j'ai implémenté avec .NET 4. Le service utilise des sessions net.tcp et fiables, ainsi que des rappels à l'application cliente . Le service WCF et l'application cliente fonctionnent sur le même domaine réseau (nous l'appellerons Domain_A) et fonctionnent correctement.Routage WCF4 avec des sessions et des rappels fiables

existant:

(Client [Domain_A]:) ---[request]--> (WCF Svc [Domain_A]) 
(Client [Domain_A]:)<--[callback]--- (WCF Svc [Domain_A]) 

La nouvelle fonctionnalité que je tente de mettre en œuvre est celle d'un service de routage (via WCF 4). Il y aura une copie identique du service WCF exécuté sur Domain_A qui s'exécutera également sur Domain_B. Les ports requis pour les points de terminaison net.tcp et mex ont été ouverts entre les deux ordinateurs sur chaque domaine, et je suis en mesure d'accéder avec succès aux métadonnées de chaque service du domaine opposé. Ce dont je ne suis pas sûr, c'est quel chemin (architecturellement) je devrais prendre en ce qui concerne le routage des demandes de service. Certaines demandes faites par le client peuvent uniquement recevoir une réponse du service sur Domain_A, et d'autres ne peuvent recevoir de réponse que du service sur Domain_B. Le service de destination est (ou peut être) déterminé par un paramètre transmis (du client) à chaque appel de service. En outre, l'application cliente ne sera exécutée qu'à partir de Domain_A.

fonctionnalité désirée:

(Client [Domain_A]:) ---[request]-->(Routing Svc [Domain_A]) ---[request]-->((WCF Svc [Domain_A]) OR (WCF Svc [Domain_B])) 
(Client [Domain_A]:) <--[callback]--- (Routing Svc [Domain_A])<--[callback]--- ((WCF Svc [Domain_A]) OR (WCF Svc [Domain_B])) 

Ma première qestion: Quelle serait la meilleure voie pour la mise en œuvre de la « fonctionnalité désirée » ci-dessus dans la mesure où le routage va (stratégie de filtrage, type de terminal/contrat, etc.)? Je suis nouveau au service de routage, et n'ai pas été capable de trouver une réponse ou un exemple clair/concis qui correspond à mes exigences. Deuxième question: En plus de la question de filtrage, quelqu'un peut-il me montrer un exemple de service de routage WCF4 qui utilise des sessions et des rappels fiables? Je n'arrive pas à trouver autre chose qu'une mention rapide du IDuplexSessionRouter. Si le point de terminaison IDuplexSessionRouter est le chemin à parcourir, j'ai été incapable de trouver un exemple qui implémente des rappels.

Merci d'avance pour toute aide ou information. S'il vous plaît laissez-moi savoir si je dois clarifier quelque chose ci-dessus.

Répondre

0

Cochez cette exemple Microsoft pour routage dynamique (sous WCF4WhatsNew.rar \ WCF4WhatsNew \ 03_DynamicRoutingRules se trouvent dans ce SkyDrive link, \).

L'échantillon redirige vers un autre service toutes les 5 secondes. Changez l'échantillon en votre algorithme de routage désiré.


P.S: La question est un peu tl;dr. Je vous suggère d'être plus précis et d'utiliser text formatting pour souligner les parties importantes. Sinon, vous recevrez beaucoup plus de tumbleweeds.

Questions connexes