C# 调试 服务程序,怎么在OnStart 函数里加断点?
protected override void OnStart(string[] args)
这个函数里,加了断点,,但是启动服务后,断点没有进来...
在
protected override void OnStop()
也加了断点,,停止服务时,断点进来了
关键问题是,安装服务后,如不启动服务,,在IDE里,就无法"附加到进程"
这样就导致,一直不能进入 onStart()里
怎么整才能调试 这个函数里的代码?
------解决方案--------------------这个函数里,加了断点,,但是启动服务后,断点没有进来...
OnStart是服务启动过程触发的,等启动好时,也就意味着这个事件处理结束了
你可以把要测试的东西放到子线程中,类似这样
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork));
void DoWork()
{
Thread.Sleep(10000); //等待一段时间,以便附加进程后,可以命中断点
断点要测试的代码
。。。
}
------解决方案--------------------二楼正解,Start一般只进行服务的启动,,至于执行的任务在启动时新开线程去做。关于调试,我一般都是在解决方案里新建个控制台程序,内容跟服务里的任务一样,调试方便,省得每次去附加进程。