Vždy můžete vytvořit hybridní službu / konzolovou aplikaci a použít konzolovou aplikaci pro účely testování.
Co musíte udělat, je něco takového - ve vašem program.cs
, změňte Main
metoda ke spuštění služby, nebo volitelně jako konzolová aplikace:
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 pak na vaší třídě služeb, která dědí z ServiceBase
a má OnStart
a OnStop
, přidejte RunConsole
metoda takto:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Nyní, pokud chcete spustit aplikaci a otestovat její funkčnost, stačí spustit EXE pomocí -console
parametr příkazového řádku a vložte bod přerušení do RunConsole
metoda.