调试windows服务
調(diào)試服務(wù)
在調(diào)試配置中生成你的服務(wù)。
安裝你的服務(wù)。?
從 “服務(wù)控制管理器”、“服務(wù)器資源管理器”或代碼啟動(dòng)服務(wù)。?
使用管理憑據(jù)啟動(dòng) Visual Studio,那么你就能附加到系統(tǒng)進(jìn)程。
(可選)在 Visual Studio 菜單欄上,選擇“工具”、“選項(xiàng)” 。?在“選項(xiàng)”對(duì)話框中,選擇“調(diào)試”、“符號(hào)”,選擇“Microsoft 符號(hào)服務(wù)器”復(fù)選框,然后選擇“確定”按鈕 。
在菜單欄上,從“調(diào)試” 或“工具” 菜單選擇“附加到進(jìn)程” 。?(鍵盤:Ctrl+Alt+P)
這將顯示“進(jìn)程” 對(duì)話框。
選擇“顯示所有用戶的進(jìn)程”復(fù)選框 。
在“可用進(jìn)程” 部分,為服務(wù)選擇進(jìn)程,然后選擇“附加” 。
?提示
該進(jìn)程的名稱將與你的服務(wù)的可執(zhí)行文件相同。
出現(xiàn)?“附加到進(jìn)程”?對(duì)話框。
選擇相應(yīng)的選項(xiàng),然后選擇“確定” 以關(guān)閉對(duì)話框。
?備注
你現(xiàn)在處于調(diào)試模式。
設(shè)置任意你想要在代碼中使用的斷點(diǎn)。
訪問服務(wù)控制管理器并操作你的服務(wù),發(fā)送停止、暫停和繼續(xù)命令以命中你的斷點(diǎn)。?有關(guān)運(yùn)行服務(wù)控制管理器的詳細(xì)信息,請(qǐng)參閱如何:啟動(dòng)服務(wù)。?請(qǐng)參見疑難解答:調(diào)試 Windows 服務(wù)。
Windows 服務(wù)的調(diào)試提示
附加到服務(wù)的進(jìn)程使你可調(diào)試該服務(wù)的大多數(shù)代碼,但不是全部。?例如,由于服務(wù)已經(jīng)啟動(dòng),你無法調(diào)試服務(wù)的?OnStart?方法中的代碼或?Main?方法中用于在此處加載服務(wù)的代碼。?避免這種限制的一種方法是在你的僅用于輔助調(diào)試的服務(wù)應(yīng)用程序中創(chuàng)建一個(gè)臨時(shí)輔助服務(wù)。?你可以安裝兩個(gè)服務(wù),然后啟動(dòng)該虛擬服務(wù)來加載服務(wù)進(jìn)程。?臨時(shí)服務(wù)啟動(dòng)進(jìn)程后,可以使用 Visual Studio 中的 “調(diào)試”菜單來附加到服務(wù)進(jìn)程。
嘗試添加對(duì)?Sleep?方法的調(diào)用延遲操作,直到你能夠附加到該進(jìn)程。
嘗試更改常規(guī)控制臺(tái)應(yīng)用程序的程序。?為此,請(qǐng)按如下所示重寫?Main?方法,這樣它可以作為 Windows 服務(wù)和控制臺(tái)應(yīng)用程序運(yùn)行,具體取決于啟動(dòng)方式。
如何:將 Windows 服務(wù)作為控制臺(tái)應(yīng)用運(yùn)行
向你運(yùn)行?OnStart?和?OnStop?方法的服務(wù)添加一個(gè)方法:
C#復(fù)制 internal void TestStartupAndStop(string[] args) { this.OnStart(args); Console.ReadLine(); this.OnStop(); }按如下所示重寫?Main?方法:
C#復(fù)制 static void Main(string[] args) { if (Environment.UserInteractive) { MyNewService service1 = new MyNewService(args); service1.TestStartupAndStop(args); } else { // Put the body of your old Main method here. } }在項(xiàng)目屬性的“應(yīng)用程序” 選項(xiàng)卡中,將“輸出類型” 設(shè)置為“控制臺(tái)應(yīng)用程序” 。
選擇“啟動(dòng)調(diào)試” (F5)。
若要將該程序再次作為 Windows 服務(wù)運(yùn)行,請(qǐng)安裝它并像通常啟動(dòng) Windows 服務(wù)一樣啟動(dòng)它。?不必恢復(fù)這些更改。
在某些情況下,你必須使用 Windows 調(diào)試器,比如當(dāng)你想要調(diào)試僅在系統(tǒng)啟動(dòng)時(shí)發(fā)生的問題時(shí)。?下載 Windows 驅(qū)動(dòng)程序工具包 (WDK),并查看如何調(diào)試 Windows 服務(wù)。
轉(zhuǎn)載于:https://www.cnblogs.com/sky-jyq/p/11540303.html
總結(jié)
以上是生活随笔為你收集整理的调试windows服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vagrant网站中box下载方法
- 下一篇: bootstrap的栅格系统和响应式工具