Windows Service调试方法小结
方法1:log记录
这是一个通用的调试方法,效率比较低,但比较实用,通过查看日志,总能达到调试的目的
方法2:附加到进程
这是Windows Service程序调试的常用方法,缺点是对Windows环境要求较高,也有失灵的时候
方法3:编辑Main()方法
1.注释原有程序自动生成的Main()方法体
2.按照实际的服务名创建实例,改变OnStart()方法修饰符为public,使得对象可以直接调用。
1 2 3 4 5 6 7 8 9 10 11 12 | static void Main() { //ServiceBase[] ServicesToRun; //ServicesToRun = new ServiceBase[] //{ // new Service1() //}; //ServiceBase.Run(ServicesToRun); Service1 service = new Service1(); service.OnStart(); } |
1 2 3 4 5 6 7 8 9 10 11 | //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调试了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY