Mit Web-API SignalR server und dem Verzehr von Windows Service
Ich habe eine Web-Anwendung und Windows-Dienst auf dem gleichen server die web-Anwendung kommuniziert mit dem windows-Dienst mit .net remoting. Windows-Dienst überprüft, ob die Verbindung mit LDAP arbeitet, dann gibt es true zurück sonst wird eine Ausnahme geworfen. Der status von windows-service ist aktualisiert auf der website.
Nun die Infrastruktur wird sich ändern. Die Webanwendung auf Azure und den windows-Dienst wird weiterhin auf der client-Maschine (wie die LDAP ist auf der client-Seite). Ich brauche um den status zu aktualisieren, die auf der web-Anwendung zu tun, als jetzt. Ich habe eingeführt, die Web-API als eine mittlere Schicht zwischen Web-Anwendung und Windows-Dienst.
Ich kann nicht finden, eine bessere Lösung, um dieses Szenario zu erhalten. Ich habe überlegungen zur Nutzung SignalR oder Akka.remote.
Was ich mir denke, so weit, wenn ich in SignalR, Web API und windows service und führen Sie die folgenden:
- Web-Anwendung Web-API-Methode
- Web-API-Methode verwendet SignalR und sendet signal an Windows-Dienst
- Windows-Dienst prüft die LDAP-Konnektivität und ruft Web-API-Methode, um den status zurückzugeben.
Hinweis: ich weiß nicht, wie können wir Windows-Dienstes als client und machen es in der Lage, zuzuhören, wenn web-api sendet ein signal an Sie, weil ich brauche nicht zu verwenden, self-hosting für windows-Dienst. können wir web-api ist es schon gehostet.
Ist es erreichbar? oder gibt es eine bessere Lösung? Bitte helfen Sie.
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage gewesen zu trainieren an diesem problem und habe die Lösung.
SignalR-Konfiguration starten.cs in der Web-API
In Web-API Hinzugefügt Hub
In Web-API-Methode Aktion
In Der Konsole-Anwendung Hinzufügen, SignalR-Client
Im Programm.cs Klasse
Führen Sie nun die Web-API des Postboten und auch die Konsole ausführen, app. Die zwei-Wege-Kommunikation etabliert werden.
Hinweis: Der folgende code ist ein fix für das Problem, wenn die Konsole geschlossen wurde, war es nicht die Auslösung der OnDisconnected Fall sofort.
Überprüfen Sie das Bild zeigt das Ergebnis.
Nach Ihrer Beschreibung, markieren Sie das Kontrollkästchen LDAP-Verbindung mit einem Windows-Dienst, und Sie möchten, um broadcast LDAP-Verbindungsstatus von clients zur Anzeige von updates auf der Webseite. Wenn Sie Integration mit SignalR, Web API, die als eine mittlere Schicht, die Sie aufrufen können, die Web-API von Ihrem Windows-Dienst, und Sie können sich auf den folgenden code, um broadcast LDAP-Verbindungsstatus von clients.
In Web-API-controller-action
Außerdem, wenn Sie installieren können, Microsoft.AspNet.SignalR.Client in Ihrem Windows-Dienst, können Sie versuchen, zu berufen, hub-Methode in Ihrem Windows-Dienst direkt, der folgende code ist für Ihre Referenz.
Bitte klären Sie weitere Informationen zu dieser Anforderung. Wenn Sie möchten, um die Kunden zu Holen und prüfen Sie die LDAP-Verbindung status-Datensätze, die Sie speichern können verbindungen status-Datensätze, die in einem externen Speicher, und Sie können dann Abfrage-verbindungen status der Datensätze aus, die externen Speicher und schieben Sie die Ergebnisse, um Kunden in Ihrem Web-API anstelle von aufrufen der Windows-Dienst.