Tengo una aplicación WCF que tiene dos servicios que intento alojar en un solo servicio de Windows usando net.tcp. Puedo ejecutar cualquiera de los servicios muy bien, pero tan pronto como trato de ponerlos a ambos en el Servicio de Windows, solo el primero se carga. He determinado que se llama al segundo administrador de servicios, pero el OnStart nunca se activa. Esto me dice que WCF está encontrando algo mal al cargar ese segundo servicio.¿Cómo alojar 2 servicios WCF en 1 servicio de Windows?
Uso de net.tcp Sé que necesito activar el uso compartido de puertos e iniciar el servicio de intercambio de puertos en el servidor. Todo esto parece estar funcionando correctamente. Intenté poner los servicios en diferentes puertos tcp y todavía no tuve éxito.
Mi clase de instalación de servicio es el siguiente:
[RunInstaller(true)]
public class ProjectInstaller : Installer
{
private ServiceProcessInstaller _process;
private ServiceInstaller _serviceAdmin;
private ServiceInstaller _servicePrint;
public ProjectInstaller()
{
_process = new ServiceProcessInstaller();
_process.Account = ServiceAccount.LocalSystem;
_servicePrint = new ServiceInstaller();
_servicePrint.ServiceName = "PrintingService";
_servicePrint.StartType = ServiceStartMode.Automatic;
_serviceAdmin = new ServiceInstaller();
_serviceAdmin.ServiceName = "PrintingAdminService";
_serviceAdmin.StartType = ServiceStartMode.Automatic;
Installers.AddRange(new Installer[] { _process, _servicePrint, _serviceAdmin });
}
}
y servicio de un aspecto muy parecido
class PrintService : ServiceBase
{
public ServiceHost _host = null;
public PrintService()
{
ServiceName = "PCTSPrintingService";
CanStop = true;
AutoLog = true;
}
protected override void OnStart(string[] args)
{
if (_host != null) _host.Close();
_host = new ServiceHost(typeof(Printing.ServiceImplementation.PrintingService));
_host.Faulted += host_Faulted;
_host.Open();
}
}
Esto funciona! Muy diferente a ServiceBase.Run (ServiceBase []), como implica la plantilla de Microsoft, funcionaría ... ¡Gracias, acabas de salvarme el día! – DaveN59