Frage

Ich versuche, irgendeine Form der Umleitung von Nachrichten in .NET Remoting zu erreichen.ALT Text http://i47.tinypic.com/wlt4y9.jpg

Wie Sie im Bild sehen können, das der Client möchte, dass er eine Nachricht an den Anbieter senden (was der einzige URI ist, von dem der Kunde wissen muss), was diese dann zu Host1 umleitet. Hier ist der schwierige Teil; Der Anbieter wird im Auge behalten, welcher Host lebendig ist (indem er den Hosts ein Register-/Unregister-Remoting-Methode ausgesetzt hat), muss der Anbieter in der Lage sein, die Botschaft dynamisch zu ändern, auf die er die Nachricht umleiten sollte.

Ich habe versucht, das Problem zu lösen, indem ich einen Host im Anbieter erstellt habe, an den der Kunde Nachrichten sendet, und dann einen Kunde (im Anbieter), der einen benutzerdefinierten Proxy implementiert (Durch Erben von Realproxy) Das wird Nachrichten an den aktuell bevorzugten Host weiterleiten. Ich kehre jedoch immer wieder auf das Problem zurück, um URI dynamisch zu ändern, und ich habe das Gefühl, dass ich nur ein einfaches, aber wichtiges Teil fehle, das dieses Problem lösen wird, ohne es in ein großes haariges Monster zu verwandeln.

Alle Tipps/Hinweise werden sehr geschätzt!

War es hilfreich?

Lösung

Als zukünftige Referenz nehme ich einen anderen, vereinfachten Ansatz dazu an. Der Anbieter wird entfernt und stattdessen versucht der Client, direkt auf Host1 zuzugreifen. Im Falle einer SocketException, die es bekommen wird, wenn der Host nicht antwortet, dann setzen Sie ihn für x Minuten in Quarantäne und versuchen Sie es mit dem nächsten Host. Wenn alle Hosts unterbrochen sind, wenden Sie sich die Ausnahme wieder.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top