Frage

Vor zwei Wochen brauchte ich einen Weg, um einen WCF-Dienst mit einem Windows-Dienst auf demselben Computer zu kommunizieren. Der Windows-Dienst hatte Daten von einer externen Quelle bekommen und es mit dem WCF-Dienst (hosted in IIS), die es geben mußten teilen, wenn ein Client eine Anfrage gemacht. Ich entschied mich, dass mit ipc zu tun.

ich es getan und jetzt der Windows-Dienst ist der IPC-Server und der WCF-Dienst ist das IPC-Client. Das geht gut, aber ich denke, dass ich einen Fehler gemacht das, weil zu tun, um es richtig die Windows-Dienst laufen zu lassen muss mit dem ASPNET-Konto ausgeführt werden, für dieses Konto ASPNET Passwort zugewiesen werden muss und wenn ich tun, dass die IIS funktioniert nicht richtig .

ich auf verschiedenen Alternativen denke, aber in allen von ihnen das Problem weiterhin besteht. Einige Ideen?


Edit:

Was ich brauchte, war ein System, das öffentlich gemacht, in einem Web-Dienst in IIS gehostet wird, Daten über Telnet von einem anderen alten System bekommen, was ein wenig instabil ist. Wie die Antwort dieses zweiten System langsam war ich wählte einen Prozess zu setzen (der Windows-Dienst) zwischen dem Web-Service und dem alten System. Der Windows-Dienst hatte, um die Daten aus dem alten System gesammelt zu speichern und wenn der WCF-Dienst, fragt er mich durch ipc allem auf einmal geben.

War es hilfreich?

Lösung

Warum nicht einfach ein anderes Konto mit dem gleichen Berechtigungssatz des ASPNET Benutzers, die sowohl der WCF-Dienst und deinem anderen Dienst läuft unter? Auf diese Weise haben Sie die Kontrolle über das Passwort.

Andere Tipps

Warum hat der Windows-Dienst benötigt als ASPNET Benutzer laufen zu lassen? Ist das, weil Sie eine IPC-Verbindung verwenden, die eine Authentifizierung des Anrufers erfordert?

Eine andere Alternative (wenn Sie die Kontrolle über den Windows-Service-Code haben) wäre zu machen, dass ein WCF-Dienst als auch (ein Servicehost in der Windows-Dienst verwendet wird). Der IIS-Dienst auf den Windows-Dienst mit einem NetTcp verbinden könnte oder NetNamedPipe verbindlich, wenn Sie die IPC-ähnliche Leistung benötigen.

Idealerweise ist der Windows-Dienst sollte als WCF-Dienst ausgeführt, so ist es einfach für die Kunden, mit ihm zu kommunizieren.

Die nächste Frage ist die ‚Kunden‘ Wetter muss ein WCF-Dienst sein. Wenn dieser Client andere Anwendungen dienen muss, dann ist es sinnvoll, sonst ist es nicht nessesary sein kann. Ich weiß nicht genug über Ihr System, so liegt es an Ihnen zu entscheiden, was das Beste!

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