您的位置:首页 > 编程语言 > C#

​调试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(){
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息