Sie können jederzeit eine Mischung aus Dienst und Konsolen-App erstellen und die Konsolen-App zu Testzwecken verwenden.
Was Sie tun müssen, ist so etwas - in Ihrer program.cs
, ändern Sie den Main
Methode, um den Dienst entweder auszuführen oder optional als Konsolen-App auszuführen:
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);
}
}
und dann auf Ihre Dienstklasse, die von ServiceBase
erbt und hat den OnStart
und OnStop
, fügen Sie die RunConsole
hinzu Methode wie folgt:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Wenn Sie nun die App ausführen möchten, um ihre Funktionalität zu testen, starten Sie einfach die EXE mit einer -console
Befehlszeilenparameter und setzen Sie einen Haltepunkt in die RunConsole
Methode.