Wie hostet man 2 WCF-Dienste in einem Windows-Dienst?

8

Ich habe eine WCF-Anwendung mit zwei Diensten, die ich in einem einzelnen Windows-Dienst unter Verwendung von net.tcp hosten möchte. Ich kann einen der Dienste problemlos ausführen, aber sobald ich versuche, beide in den Windows-Dienst zu legen, wird nur der erste geladen. Ich habe festgestellt, dass der zweite Dienst ctor aufgerufen wird, aber der OnStart wird nie ausgelöst. Das sagt mir, dass WCF etwas falsch mit dem Laden dieses zweiten Dienstes findet.

Mit net.tcp weiß ich, dass ich die Portfreigabe aktivieren und den Portfreigabedienst auf dem Server starten muss. Das scheint alles richtig zu funktionieren. Ich habe versucht, die Dienste auf verschiedenen TCP-Ports und immer noch keinen Erfolg.

Meine Service-Installer-Klasse sieht so aus:

%Vor%

und beide Dienste sehen sich sehr ähnlich

%Vor%     
Craig Tyler 10.09.2008, 15:33
quelle

4 Antworten

11

Gründen Sie Ihren Dienst auf diesem MSDN-Artikel und erstellen Sie zwei Diensthosts. Aber statt jeden Service-Host tatsächlich direkt aufzurufen, können Sie ihn auf beliebig viele Klassen verteilen, die jeden Service definieren, den Sie ausführen möchten:

%Vor%

Rufen Sie im Hauptteil des Windows-Diensthosts die verschiedenen Klassen auf:

%Vor%

Dann können Sie einem Windows-Diensthost so viele WCF-Dienste hinzufügen, wie Sie möchten.

REMEBER, um auch die Stopp-Methoden aufzurufen ....

    
Wiren 18.09.2008, 08:13
quelle
2
%Vor%     
Eswararao 06.02.2012 11:02
quelle
1

Wenn ein Windows-Dienst zwei WCF-Dienste starten soll, benötigen Sie einen ServiceInstaller mit zwei ServiceHost-Instanzen, die beide in der (einzigen) OnStart-Methode gestartet werden.

Wenn Sie einen neuen Windows-Dienst in Visual Studio erstellen möchten, sollten Sie dem Muster für ServiceInstaller folgen, das sich im Vorlagencode befindet. Im Allgemeinen ist dies ein guter Anfang.

    
Jeremy McGee 16.09.2008 21:37
quelle
0

Sie brauchen wahrscheinlich nur zwei Service-Hosts.

_host1 und _host2.

    
Darren Kopp 10.09.2008 15:35
quelle

Tags und Links