Domanda

Come eseguiresti un servizio pipe denominato WCF sullo sfondo di un'applicazione Windows WPF? Non riesco a trovare alcun esempio di esecuzione del server WCF all'interno di un'applicazione WPF.

Qualche idea?

Attualmente sto usando il seguente codice in Application_Startup. Questo deve essere eseguito con il proprio thread?

    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
È stato utile?

Soluzione 2

Ho rimosso il blocco Utilizzo del codice e impostato ServiceHost come variabile privata all'interno della classe Applicazione WPF. Quindi chiudo ServiceHost alla chiusura dell'applicazione. Sembra funzionare bene.

Altri suggerimenti

Juval Lowy fornisce classi di supporto nella sua libreria ServiceModelEx insieme a informazioni su come eseguire i componenti WCF in-process, che è probabilmente quello che vorresti fare con il tuo componente WCF poiché vuoi usare named pipe che richiede che il componente sia in esecuzione sullo stesso computer dell'app WPF.

Suggerisco di leggere la classe InProcFactory a partire da pagina 60 della 2a edizione di " Programmazione di servizi WCF " di Juval Lowy. Questa è essenzialmente la "bibbia" di WCF.

Questo ti mostrerà esattamente come ospitare il tuo componente in elaborazione usando le sue classi di supporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top