2007-04-10

 

如何调试Windows service的onStart()方法

一般来说,启动Windows service后,创建定时器,定时调用处理过程。调试定时处理过程时,挂载到服务进程,再等待定时器被激发后,IDE会停在断点,进行单步跟踪调试。但想对onStart()进行调试却比较困难,因为等我们完成挂载时,onStart()已经执行完毕了。所以,首先要想办法让onStart()慢点执行,以便我们在服务启动并执行到断点前,有足够的时间来挂载调试器。要实现这个功能,最简单的就是让程序在断点前,暂停一段时间。我们可以追回一句:
System.Threading.Thread.Sleep(10000)
Sleep()的参数是毫秒,这里是暂停10秒,应该有足够的时间,让我们从容挂载调试器。
要注意的是,从管理控制台,点启动服务时,就马上去IDE的TOOL菜单下挂载调试器,而不是等服务启动完成。服务是在onStart()执行完毕后,才完成启动的,那时再去挂载,就为时已晚了。这点我们可以修改暂停时间来证明,如果时间设得越长,则服务器动时,那个等待进度条走得就越慢。

Labels: ,


Comments: Post a Comment





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]

/**/