Zawsze możesz utworzyć hybrydę usługi / aplikacji konsoli i użyć aplikacji konsoli do celów testowych.
To, co musisz zrobić, to coś takiego - w swoim program.cs
, zmień Main
metoda, aby uruchomić usługę lub opcjonalnie uruchomić jako aplikację konsolową:
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);
}
}
a następnie w klasie usługi, która dziedziczy z ServiceBase
i ma OnStart
i OnStop
, dodaj RunConsole
metoda jak ta:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Teraz, jeśli chcesz uruchomić aplikację, aby przetestować jej funkcjonalność, po prostu uruchom EXE z -console
parametr wiersza poleceń i umieść punkt przerwania w RunConsole
metoda.