Windows Service调试方法小结
方法1:log记录
这是一个通用的调试方法,效率比较低,但比较实用,通过查看日志,总能达到调试的目的
方法2:附加到进程
这是Windows Service程序调试的常用方法,缺点是对Windows环境要求较高,也有失灵的时候
方法3:编辑Main()方法
1.注释原有程序自动生成的Main()方法体
2.按照实际的服务名创建实例,改变OnStart()方法修饰符为public,使得对象可以直接调用。
static void Main() { //ServiceBase[] ServicesToRun; //ServicesToRun = new ServiceBase[] //{ // new Service1() //}; //ServiceBase.Run(ServicesToRun); Service1 service = new Service1(); service.OnStart(); }
//protected override void OnStart(string[] args) public void OnStart() { FileStream fs = new FileStream(@"f:\xx.txt", FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); sw.BaseStream.Seek(0, SeekOrigin.End); sw.WriteLine("WindowsService: Service Started" + DateTime.Now.ToString() + "\n"); sw.Flush(); sw.Close(); fs.Close();
这样,就可以设置断点,按F5调试了