【转】Windows服务调试技巧
生活随笔
收集整理的這篇文章主要介紹了
【转】Windows服务调试技巧
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關于調試windows service, 其實這是一個老生常談的問題了.
通常的處理辦法是, 在service運行后, 在調試器中選擇attach to process.
然而這種做法也有一定的局限性, 例如在service啟動時的OnStart事件中的代碼, 基本上很難調試. 往往當attach到我們的service的時候, 這部分代碼已經(jīng)執(zhí)行過了. 于是, 有人提出, 可以另寫一個project來調用這個OnStart方法, 或將OnStart方法中的代碼搬到另一個project中測試. 不過, 這些方法終究不是以windows服務的方式調試的, 不能夠最真實的反應service運行時的執(zhí)行狀況(如權限問題等環(huán)境問題).
我的做法是, 在OnStart方法的最開始部分加上"Debugger.Launch()"的調用, 當service運行到此處時, 將會彈出一個選擇調試器的對話框, 同時暫停在當前位置. 這樣, 我們就做到了在代碼中手動的啟動調試器.
示例代碼如下:
1 public partial class MyService : ServiceBase
2 {
3 public MyService()
4 {
5 InitializeComponent();
6 }
7 protected override void OnStart(string[] args)
8 {
9 #if DEBUG
10 Debugger.Launch(); //Launches and attaches a debugger to the process.
11 ? #endif
12 // TODO: add your initialize code here.
13 ? }
14 protected override void OnStop()
15 {
16 }
17 }
轉載于:https://www.cnblogs.com/fast-michael/archive/2011/05/26/2057949.html
總結
以上是生活随笔為你收集整理的【转】Windows服务调试技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 接视频Java 数据库
- 下一篇: 数据挖掘-电影推荐系统