Винаги можете да създадете хибрид услуга/конзолно приложение и да използвате конзолното приложение за тестови цели.
Това, което трябва да направите, е нещо подобно - във вашия program.cs
, променете Main
метод за стартиране на услугата или по избор като конзолно приложение:
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);
}
}
и след това върху вашия клас услуги, който наследява от ServiceBase
и има OnStart
и OnStop
, добавете RunConsole
метод по следния начин:
public void RunConsole(string[] args)
{
OnStart(args);
Console.WriteLine("Service running ... press <ENTER> to stop");
//Console.ReadLine();
while (true)
{ }
OnStop();
}
Сега, ако искате да стартирате приложението, за да тествате неговата функционалност, просто стартирайте EXE с -console
параметър на командния ред и поставете точка на прекъсване в RunConsole
метод.