Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if (!Environment.UserInteractive)
{
ServiceBase[] servicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(servicesToRun);
}
else
{
//Если интерактивный режим — запустим ручками конкретный сервис
Console.WriteLine(«Press any key to start Service1 interactively...»);
Console.ReadLine();
var interactivelyMailService = new Service1();
interactivelyMailService.StartInteractively();
Console.WriteLine(«Press any key to stop Service1 and exit...»);
Console.ReadLine();
interactivelyMailService.StopInteractively();
}
У сервиса определяем публичные методы для вызова его интерактивно (так понятней и красивей имхо).
И после этого F5 на проекте (если стоит запускать выделенный проект) будет работать в обчном режиме. Просто в if будете проваливаться в другую ветку и пойдете по тому же самому коду сервиса.
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
}
static void Main()
{
#if !DEBUG
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
#else
new Service1().Run();
#endif
}
Отладка службы Windows