Du kan altid oprette en service-/konsolapp-hybrid og bruge konsolappen til testformål.
Det du skal gøre er noget som dette - i dit program.cs
, skal du ændre Main
metode til enten at køre tjenesten eller eventuelt køre som en konsolapp:
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);
}
}
og derefter på din serviceklasse, som arver fra ServiceBase
og har OnStart
og OnStop
, tilføj RunConsole
metode som sådan:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Hvis du nu vil køre appen for at teste dens funktionalitet, skal du bare starte EXE med en -console
kommandolinjeparameter, og indsæt et brudpunkt i RunConsole
metode.