В статье Microsoft объясняется, как отлаживать службу Windows здесь и какую часть может пропустить любой, если они отладят ее, подключившись к процессу.
Ниже приведен мой рабочий код.Я следовал подходу, предложенному Microsoft.
Добавьте этот код в program.cs
:
static void Main(string[] args)
{
// 'If' block will execute when launched through Visual Studio
if (Environment.UserInteractive)
{
ServiceMonitor serviceRequest = new ServiceMonitor();
serviceRequest.TestOnStartAndOnStop(args);
}
else // This block will execute when code is compiled as a Windows application
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new ServiceMonitor()
};
ServiceBase.Run(ServicesToRun);
}
}
Добавьте этот код в класс ServiceMonitor.
internal void TestOnStartAndOnStop(string[] args)
{
this.OnStart(args);
Console.ReadLine();
this.OnStop();
}
Сейчасперейдите к Свойства проекта , выберите вкладку «Приложение» и выберите Тип вывода как «Консольное приложение» при отладке, или «Приложение Windows», когда завершите отладку, перекомпилируйте и установите службу.