调试Windows Service
来源:互联网 发布:linux怎样输入 编辑:程序博客网 时间:2024/06/02 06:18
通常的处理办法是, 在service运行后, 在调试器中选择attach to process.
然而这种做法也有一定的局限性, 例如在service启动时的OnStart事件中的代码, 基本上很难调试. 往往当attach到我们的service的时候, 这部分代码已经执行过了. 于是, 有人提出, 可以另写一个project来调用这个OnStart方法, 或将OnStart方法中的代码搬到另一个project中测试. 不过, 这些方法终究不是以windows服务的方式调试的, 不能够最真实的反应service运行时的执行状况(如权限问题等环境问题).
我的做法是, 在OnStart方法的最开始部分加上"Debugger.Launch()"的调用, 当Service运行到此处时, 将会弹出一个选择调试器的对话框, 同时暂停在当前位置. 这样, 我们就做到了在代码中手动的启动调试器.
然而这种做法也有一定的局限性, 例如在service启动时的OnStart事件中的代码, 基本上很难调试. 往往当attach到我们的service的时候, 这部分代码已经执行过了. 于是, 有人提出, 可以另写一个project来调用这个OnStart方法, 或将OnStart方法中的代码搬到另一个project中测试. 不过, 这些方法终究不是以windows服务的方式调试的, 不能够最真实的反应service运行时的执行状况(如权限问题等环境问题).
我的做法是, 在OnStart方法的最开始部分加上"Debugger.Launch()"的调用, 当Service运行到此处时, 将会弹出一个选择调试器的对话框, 同时暂停在当前位置. 这样, 我们就做到了在代码中手动的启动调试器.
示例代码如下:
public partial class MyService : ServiceBase{
public MyService(){
InitializeComponent();
}
protected override void OnStart(string[] args){
Debugger.Launch(); //Launches and attaches a debugger to the process.(启动和附加调试器进程)
// TODO: add your initialize code here.(在这里添加你的初始化代码)
}
protected override void OnStop() {
}
}
- 如何调试 Windows Service
- 调试Windows Service
- 调试Windows Service (三)
- 调试Windows Service
- Windows Service 调试方法
- windows service调试
- windows service的调试
- Windows Service调试
- windows service 之调试过程
- windows Service 之调试过程
- 创建安装调试windows service
- windows Service 之调试过程
- Windows Service服务的调试
- 在VS2005中调试Windows Service
- 在VS2005中调试Windows Service
- 关于windows service的创建和调试
- C#下Windows Service的调试
- delphi如何调试windows service程序?
- kzalloc 函数详解
- vc字符串转换处理:(绝对精华,收集所有的例子)
- Eclipse编码格式修改
- Linux 内核网络优化
- 智力题_看看你的脑子转的够不够快!
- 调试Windows Service
- IE6 PNG透明终极解决方案
- rails console production
- kmalloc、vmalloc、malloc的区别
- MYSQL常用命令(转载 学习)
- 设备驱动(转)
- Kill指定进程
- VB控件VSFlexGrid 属性
- richtextbox 复制、粘贴、删除、全选