U kunt altijd een hybride service/console-app maken en de console-app gebruiken voor testdoeleinden.
Wat je moet doen is zoiets als dit - in je program.cs
, verander de Main
methode om de service uit te voeren, of optioneel als een console-app:
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);
}
}
en vervolgens op uw serviceklasse, die erft van ServiceBase
en heeft de OnStart
en OnStop
, voeg de RunConsole
. toe methode als volgt:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Als u nu de app wilt gebruiken om de functionaliteit te testen, start u de EXE gewoon met een -console
opdrachtregelparameter en plaats een breekpunt in de RunConsole
methode.