3 Stimmen

C# Windows-Dienst auf mehreren Rechnern laufen?

Ich versuche, einen WCF-Dienst zu erstellen, der in einem Windows-Dienst gehostet wird. Dieser Windows-Dienst wird auf mehreren Rechnern bereitgestellt (eine variable Anzahl von Rechnern je nach Auslastung). Es wird eine Geschäftsschicht geben, die "Aufträge" in eine Warteschlange stellt und jeden Auftrag an einen dieser Windows-Dienste weiterleitet, je nachdem, welcher davon frei ist.

Ich bin etwas verwirrt, wie ich das erreichen kann. Schreibe ich den WCF- und den Hosting-Windows-Dienst, installiere ich sie auf den von mir benötigten Rechnern. Dann von der Schicht, die die Aufträge an diese Dienste sendet, ich irgendwie sagen, welche Maschine zu senden (über die WCF-Service-Schnittstelle). Es ist dieser Teil, den ich am meisten verwirrt, wie zu tun.

4voto

NateTheGreat Punkte 2295

Ich habe genau das getan. Was Sie beschrieben haben, ist richtig (obwohl es in einer verteilten Umgebung schwierig sein kann, die Knoten synchron zu halten und zu verhindern, dass sie sich gegenseitig in die Quere kommen). Um die Endpunkte zu finden, würde ich die Verwendung von WS-Discovery empfehlen, wie unter http://msdn.microsoft.com/en-us/library/ee354381.aspx . Wenn Sie nicht mit .NET4 arbeiten, können Sie die Erkennung immer noch selbst implementieren, indem Sie einen Dienst oder ein Endpunktverhalten verwenden.

2voto

John Saunders Punkte 159011

Wie jeder andere WCF-Dienst stellen Ihre Dienste Endpunkte zur Verfügung. Der Client sendet einfach an diese Endpunkte, ganz normal.

Vielleicht sind Sie mit den Überladungen des Proxy-Konstruktors nicht vertraut? Es gibt einige, die eine Endpunktadresse akzeptieren und es dem Client ermöglichen, den zu verwendenden Dienstendpunkt zu wählen.

1voto

George Polevoy Punkte 7073

Sie sprechen von einer NLB Lösung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X