Siempre puede crear un híbrido de aplicación de servicio/consola y usar la aplicación de consola con fines de prueba.
Lo que debe hacer es algo como esto:en su program.cs
, cambia el Main
método para ejecutar el servicio u, opcionalmente, ejecutarlo como una aplicación de consola:
static class Program
{
static void Main(params string[] args)
{
string firstArgument = string.Empty;
if (args.Length > 0)
{
firstArgument = args[0].ToLowerInvariant();
}
if (string.Compare(firstArgument, "-console", true) == 0)
{
new YourServiceClass().RunConsole(args);
}
else
{
ServiceBase[] ServicesToRun = new ServiceBase[] { new YourServiceClass() };
ServiceBase.Run(ServicesToRun);
}
}
y luego en su clase de servicio, que hereda de ServiceBase
y tiene el OnStart
y OnStop
, agregue la RunConsole
método así:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Ahora, si desea ejecutar la aplicación para probar su funcionalidad, simplemente inicie el EXE con una -console
parámetro de línea de comando y coloque un punto de interrupción en RunConsole
método.