Windows服务调试问题

时间:2011-05-11 06:14:42

标签: c# windows-services

我已经创建了Windows服务我已经尝试调试我使用在调试选项卡下单击附加处理选择Myservice.exe它不会通过断点。

在开始活动的服务中,我写了以下代码

     protected override void OnStart(string[] args)
    {

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

请帮我解决这个问题....

2 个答案:

答案 0 :(得分:4)

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

<强> Debugger.Break();

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

答案 1 :(得分:0)

您也可以使用类似的方法来提示在调试模式下附加调试器:

#if DEBUG    
if (!Debugger.IsAttached)
{
    Debugger.Launch();
}    
#endif

您甚至可以在main方法中使用此代码,它将在调试模式下将该服务作为普通应用程序运行:

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
}