C# Windows服务调试问题

C# Windows服务调试问题,c#,windows-services,C#,Windows Services,我已经创建了我尝试调试的windows服务,在“调试”选项卡下单击“附加”以处理选择Myservice.exe它不会通过断点 在服务启动事件中,我编写了以下代码 protected override void OnStart(string[] args) { Console.WriteLine("Press Enter to terminate ..."); } 请帮助我如何解决此问题……在代码中使用以下方法。这是迄今为止在服务库上设置断点的最简单方

我已经创建了我尝试调试的windows服务,在“调试”选项卡下单击“附加”以处理选择Myservice.exe它不会通过断点

在服务启动事件中,我编写了以下代码

     protected override void OnStart(string[] args)
    {

        Console.WriteLine("Press Enter to terminate ...");
    }

请帮助我如何解决此问题……

在代码中使用以下方法。这是迄今为止在服务库上设置断点的最简单方法

调试器.Break()

protected override void OnStart(string[] args)
    {
        Debugger.Break();
        Console.WriteLine("Press Enter to terminate ...");
    }

在代码上使用以下方法。这是迄今为止在服务库上设置断点的最简单方法

调试器.Break()

protected override void OnStart(string[] args)
    {
        Debugger.Break();
        Console.WriteLine("Press Enter to terminate ...");
    }

您还可以使用类似以下内容来提示在调试模式下附加调试器:

#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
}
您甚至可以在主方法中使用此代码,它将在调试模式下作为普通应用程序运行服务:

#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
}

您还可以使用类似以下内容来提示在调试模式下附加调试器:

#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
}
您甚至可以在主方法中使用此代码,它将在调试模式下作为普通应用程序运行服务:

#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
}