Windows服務除錯小結(附Demo)

2022-03-05 16:53:03 字數 1885 閱讀 9422

有時候不可避免的要建些windows服務。既然寫**,就需要除錯,由於這個東西搞的人不多,每個人除錯的方法也不全,所以在下在這裡小結一下除錯方法。

一:建立乙個window service

檔案->新建專案->windows 服務。

然後我們直接執行試試,然後提示如下:

這樣我們的環境就基本搭建好了,然後就是服務的安裝,執行bin\debug\install\install.bat即可。

一:普通除錯

msdn上指出「必須從服務控制管理器的上下文中而不是 visual studio 中執行服務。 

要除錯服務,必須啟動該服務,然後將偵錯程式附加到該服務正在其中執行的程序中。 

二:特殊除錯

如果我們不想建立服務就想除錯**,其實可以採用其他的替代方式進行,只不過要改**。

我們找到程式的入口:program.cs。

原**如下:

1

static

class

program2;

13servicebase.run(servicestorun);14}

15 }

修改後**如下:

1

protected

override

void onstart(string

args)29

10private

void timer_elapsed(object

sender, elapsedeventargs e)

1114

15protected

override

void

onstop()

1618

19public

void test(string

args)

20

1

static

class

program215

return;16

17servicebase servicestorun;

18 servicestorun = new

servicebase 19;

22servicebase.run(servicestorun);23}

24 }

這樣,我們就可以進行除錯了。

二:onstart常規除錯

有時候我們想正常的除錯onstart方法,但是,啟動服務後這個方法已經執行了,那麼我們應該怎麼除錯捏。

我們可以在onstart方法體前面加個debugger.launch();就可以很愉快的除錯了。如下:

1

protected

override

void onstart(string

args)

2

啟動服務後彈出如下:,然後選中對應的解決方案即可。

Windows服務除錯小結(附Demo)

有時候不可避免的要建些windows服務。既然寫 就需要除錯,由於這個東西搞的人不多,每個人除錯的方法也不全,所以在下在這裡小結一下除錯方法。一 建立乙個window service 檔案 新建專案 windows 服務。然後我們直接執行試試,然後提示如下 這樣我們的環境就基本搭建好了,然後就是服務...

Windows服務程式的除錯

摘自 msdn 1.由於服務必須從服務控制管理器的上下文中執行,而不是從 visual studio 中執行,因此除錯服務不像除錯其他 visual studio 應用程式型別那樣簡單。若要除錯服務,必須首先啟動服務,然後將乙個偵錯程式附加到正在執行服務的程序中 attachtoprocess 附加...

如何 除錯 Windows 服務應用程式

除非知道程序是什麼,並且知道附加到程序或可能取消程序所帶來的後果,否則不要附加到程序。例如,如果附加到 winlogon 程序,然後停止除錯,系統就會暫停,因為沒有 winlogon,系統無法執行。只能將偵錯程式附加到正在執行的服務。附加程序會中斷服務的當前執行 它並不真正終止或暫停服務的處理。也就...