#c# #windows-services
#c# #windows-services
Вопрос:
Я создал службу Windows, которую я пытаюсь отладить, для этого я использую вкладку debug, нажмите «прикрепить к процессу», выберите Myservice.exe это не пройдет через точку останова.
В сервисе при событии запуска я писал следующий код
protected override void OnStart(string[] args)
{
Console.WriteLine("Press Enter to terminate ...");
}
Пожалуйста, помогите мне, как решить эту проблему….
Ответ №1:
Используйте следующий метод.В вашем коде. Это, безусловно, самый простой способ установить точку останова в библиотеке служб.
Debugger.Break();
protected override void OnStart(string[] args)
{
Debugger.Break();
Console.WriteLine("Press Enter to terminate ...");
}
Ответ №2:
Вы также могли бы использовать что-то вроде этого, чтобы запросить подключение отладчика в режиме отладки:
#if DEBUG
if (!Debugger.IsAttached)
{
Debugger.Launch();
}
#endif
Вы могли бы даже использовать этот код в своем основном методе, он будет запускать службу как обычное приложение в режиме отладки:
public static void Main()
{
var service = new YourService();
#if DEBUG
service.Start();
Console.ReadLine();
service.Stop();
#else
var ServicesToRun = new System.ServiceProcess.ServiceBase[] { service };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
#endif
}