调试windows系统服务
2017-06-16 00:00
190 查看
windows系统服务不能直接运行,只能在安装完服务之后启动、暂停、继续、停止服务,导致服务的调试不能使用一般的断点调试。
要调试系统服务,可以采用附加到进程的方式:在VS的工具栏中找到“调试”这个选项,然后选取“附加到进程”
然后选择相应的服务附加,再启动服务即可调试(前提是已经在服务的代码中打上了断点)
不过以上方法不能调试OnStart方法,即服务的启动并不能被调试到,这个时候,需要在OnStart方法中加上Debugger.Launch().
示例代码如下:
usingSystem.Diagnostics;
publicpartialclassMyService:ServiceBase{
publicMyService(){
InitializeComponent();
}
protectedoverridevoidOnStart(string[]args){
#ifDEBUG
Debugger.Launch();//Launchesandattachesadebuggertotheprocess.
#endif
//TODO:addyourinitializecodehere.
}
protectedoverridevoidOnStop(){
}
}
要调试系统服务,可以采用附加到进程的方式:在VS的工具栏中找到“调试”这个选项,然后选取“附加到进程”
然后选择相应的服务附加,再启动服务即可调试(前提是已经在服务的代码中打上了断点)
不过以上方法不能调试OnStart方法,即服务的启动并不能被调试到,这个时候,需要在OnStart方法中加上Debugger.Launch().
示例代码如下:
相关文章推荐
- Windows服务 示例简要说明(系统事件日志、运行批处理、安装卸载、启动调试)
- 剖析Windows系统服务调用机制
- 剖析Windows系统服务调用机制
- Windows 自定义exe文件注册系统服务方法(Inber write)
- 从Window系统托盘控制Windows服务---net_lover [原作]
- windows系统常用服务名称及功能
- 系统安全:谈Windows 服务备份
- 剖析Windows系统服务调用机制
- 剖析Windows系统服务调用机制
- 使用Java Service Wrapper 把Java程序作为Windows系统服务
- 剖析Windows系统服务调用机制
- [老文章转载]将Java程序变成Windows系统服务
- 以 Console 方式运行、调试、编译 .Net 编写的 Windows 服务
- 通过Windows 2000专业版的注册表来配置系统服务
- windows服务开发(二、调试)
- 用C#开发Windows服务监控系统使用