Винаги можете да създадете хибрид услуга/конзолно приложение и да използвате конзолното приложение за тестови цели.
Това, което трябва да направите, е нещо подобно - във вашия 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 метод.