Você sempre pode criar um híbrido de serviço/aplicativo de console e usar o aplicativo de console para fins de teste.
O que você precisa fazer é algo assim - em seu
program.cs
, altere o Main
para executar o serviço ou, opcionalmente, como um aplicativo de console: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);
}
}
e depois em sua classe de serviço, que herda de
ServiceBase
e tem o OnStart
e OnStop
, adicione o RunConsole
método assim: public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Agora, se você deseja executar o aplicativo para testar sua funcionalidade, basta iniciar o EXE com um
-console
parâmetro de linha de comando e coloque um ponto de interrupção no RunConsole
método.