Ich frage mich, ob jemand dies versucht hat, um Ereignisse vom Server auf den Client zu bekommen. Ich habe eine Umgebung, die Unix-basierte Server verwendet und WCF-Duplex-/Callbacks etc. nicht verwenden kann.WCF Self-Hosting auf dem Client? Gut oder schlecht
Die Idee ist, dass meine Clients Windows-Boxen sind, die eine dicke .net-App laufen lassen, einen WCF-Selbst-Host hochfahren und ihren registrieren Self-Host-URL auf dem Server für diese Sitzung. Sie würden einen sehr einfachen Vertrag haben und der Server würde, wenn er ein Update hat, den Client-Server anrufen, der darauf hinweist, dass ein Update auf dem Server darauf wartet und der Client es dann usw. bekommt.
Ich versuche es immer noch Ich bin nicht sicher, ob dies ein guter Weg ist. Gibt es irgendwelche Sicherheitsimplikationen, um die ich mich kümmern sollte? Gibt es Möglichkeiten, die Duplex-Aufrufe plattformübergreifend zu nutzen?
Ich habe etwas Ähnliches vor der Verwendung von Sockets getan, oder vielleicht wäre eine plattformübergreifende Nachrichtenwarteschlange sowieso ein besserer Weg, dies zu tun.
Dank
76mel
Ja, ich habe darüber nachgedacht, eine IIS-Mid-Tier ist eine großartige Idee. Mein Gedanke ist jedoch, dass wir 10.000 Clients haben und 1/3 davon gleichzeitig und so unterstützend, dass ein bisschen in IIS-Boxen kosten würde. Ich werde einen Proof of Concept aufarbeiten und werde Sie auf dem Laufenden halten, aber ich wäre dankbar, wenn jemand mehr Gedanken, Einsichten und Bedenken darüber hat, ob das eine gute Sache ist, wie TCP-Listener zu spinnen, warum nicht WCF Dienstleistungen. – 76mel
Ok ich habe es versucht und alles funktioniert. Ich denke, das würde sehr gut für Projekte funktionieren, die sich innerhalb der Firewall befinden. Wenn Sie die Firewall überspannen möchten, ist die Verwendung eines Busses/Queue der bessere Weg, wenn Sie sich auf einer niedrigeren Ebene verbinden. Was ich hier gemacht habe, war ein einfacher Event-Vertrag, von dem der Unix-Server wusste. Ich habe den WCF-Dienst in einem Windows-Dienst ausgeführt, der sich zuerst beim Server mit seinem Endpunkt registriert. Der Server kann dann Ereignisse an meinem Endpunkt auslösen, und ich kann auf diese reagieren, indem ich Daten vom Server abrufe. – 76mel
Ausgezeichnet! Das klingt nach einem coolen Blog-Artikel. –