Frage

Wie würden Sie ein WCF-Named Pipe Dienst im Hintergrund von einer WPF-Windows-Anwendung ausführen? Ich kann keine Proben scheinen zu finden, von dem WCF-Server innerhalb einer WPF-Anwendung ausgeführt wird.

Irgendwelche Ideen?

Ich bin derzeit mit dem folgenden Code in der Application_Startup. Ist dieses Bedürfnis mit einem eigenen Thread ausgeführt?

    Using Host As ServiceModel.ServiceHost = New ServiceModel.ServiceHost(GetType(Service), New Uri(("net.pipe://localhost")))
        '
        Host.AddServiceEndpoint(GetType(IService), New ServiceModel.NetNamedPipeBinding, "Test")
        Host.Open()
        '
    End Using
War es hilfreich?

Lösung 2

Ich entfernte die Verwendung von Codeblock und Einrichtung der Servicehost als privaten Variable in der WPF-Anwendungsklasse. Ich schließe dann die Servicehost, wenn die Anwendung beendet. Scheint gut zu funktionieren.

Andere Tipps

Juval Löwy bietet Hilfsklassen in seiner ServiceModelEx Bibliothek zusammen mit Informationen darüber, wie WCF Komponenten in-Prozess ausgeführt werden, was wahrscheinlich ist, was Sie mit Ihrem WCF-Komponente wollen, tun werden, da Sie benannte Pipes verwenden möchten die erfordert die Komponente auf der gleichen Maschine wie Ihre WPF-Anwendung ausgeführt werden.

Ich schlage vor, über die InProcFactory Klasse lesen ab Seite 60 der zweiten Ausgabe von „ Programming WCF Dienstleistungen “von Juval Löwy. Dies ist im Wesentlichen die „Bibel“ des WCF.

Das Ihnen genau zeigen, wie Sie Ihre Komponente in Prozess bewirten seine Hilfsklassen verwenden.

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