如何:调试 OnStart 方法

通过单步执行 Windows 服务的实例,可以调试该服务的构造函数。 通过启动 Windows 服务并将调试器附加到服务进程,可以调试 Windows 服务本身。 然而,若要调试 Windows 服务的 OnStart 方法,您必须添加几行代码以模拟该服务。 有关更多信息,请参见 ServiceBase.OnStart

调试 OnStart 方法中的问题

  • 创建服务(例如控制台应用程序)的模拟以确定问题所在。

    例如,假定您有一个 Visual C# Windows 服务,如下所示:

    public class ManagedWindowsService : System.ServiceProcess.ServiceBase 
    {
       //
       // designer and user generated methods and properties
       //
       public static int main(String[] args)
       {      
          ServiceBase.Run( new ManagedWindowsService() );
       }
    }
    

    添加下列代码行以调试 OnStart 方法:

    public static int main(String[] args)
    {      
       (new ManagedWindowsService()).OnStart(); // allows easy debugging of OnStart()
       ServiceBase.Run( new ManagedWindowsService() );
    }
    

    该服务不会在此模式下运行,但您可以调试 OnStart 方法并验证它是否按预期的方式运行。

有关更多信息,请参见调试 Windows 服务应用程序

请参见

概念

调试器安全

其他资源

调试托管代码