2010-06-04 4 views
1

J'essaye d'accomplir une certaine forme de redirection de messages dans .NET Remoting. alt text http://i47.tinypic.com/wlt4y9.jpg. Remoting .NET - Redirection message/Redundancy

Comme vous pouvez le voir dans l'image que je voudrais pour le client d'envoyer un message au fournisseur (qui est le seul URI que le client doit connaître), qui sera ensuite rediriger ce host1. Voici la partie délicate; le fournisseur gardera la trace de l'hôte en vie (en exposant une méthode de registre/de désinscription remoting aux hôtes), en d'autres termes, le fournisseur doit être capable de changer dynamiquement l'URI vers lequel il devrait rediriger le message.

J'ai tenté de résoudre le problème en créant un hôte dans le fournisseur auquel le client envoie des messages, puis un client (dans le fournisseur) qui implémente un proxy personnalisé (by inheriting from RealProxy) qui redirigera les messages vers l'actuel hôte préféré. Cependant, je reviens toujours au problème de l'URI changeant dynamiquement et j'ai l'impression que je manque juste une partie facile, mais essentielle, qui résoudra ce problème sans le transformer en un gros monstre poilu.

Des conseils/astuces seront très appréciés!

+0

Quelle version de .NET Framework utilisez-vous? 'Si> = 3.0', vous pouvez envisager d'utiliser WCF au lieu de l'obsolète .NET Remoting maintenant obsolète. –

+0

Désolé, j'ai oublié d'ajouter cela. J'utilise .Net 2.0. –

+0

OK. Vous devriez également ajouter l'étiquette appropriée pour cela. –

Répondre

0

Pour référence future, j'utilise une autre approche, simplifiée. Le fournisseur sera supprimé et le client essaiera à la place d'accéder directement à host1. Dans le cas d'une exception SocketException, qui est ce qu'elle obtiendra lorsque l'hôte ne répond pas, mettez-la en quarantaine pendant X minutes et essayez avec l'hôte suivant. Si tous les hôtes sont désactivés, relancez l'exception.