Puoi sempre creare un servizio ibrido/app console e utilizzare l'app console a scopo di test.
Quello che devi fare è qualcosa del genere, nel tuo program.cs
, cambia il Main
metodo per eseguire il servizio o, facoltativamente, come app 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 poi sulla tua classe di servizio, che eredita da ServiceBase
e ha il OnStart
e OnStop
, aggiungi il RunConsole
metodo in questo modo:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Ora se vuoi eseguire l'app per testarne la funzionalità, avvia l'EXE con una -console
parametro della riga di comando e inserire un punto di interruzione in RunConsole
metodo.