如何除錯windows服務應用程式

2022-02-14 23:26:19 字數 1375 閱讀 5042

1樓:宇歆

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

然後可以使用 visual studio 的所有標準除錯功能來除錯應用程式。

除錯 onstart 方法可能比較困難,因為 windows 服務管理器將所有嘗試啟動服務的時間限制在 30 秒內。除錯 windows 服務。

安裝您的服務。

可從服務控制管理器、「伺服器資源管理器」或**啟動服務。

在 visual studio 中,從「除錯」選單中選擇「程序」,出現「程序」對話方塊,單擊「顯示系統程序」。

在「可用程序」區域內單擊服務的程序,然後單擊「附加」。

提示   此程序將與服務的可執行檔案同名,出現「附加到程序」對話方塊。

選擇任意適當選項,然後單擊「確定」關閉對話方塊。注意   現在已處於除錯模式。

設定要在**中使用的任意斷點。

訪問服務控制管理器並操縱服務,併傳送停止、暫停和繼續命令以命中您的斷點。

2樓:楊伊凡

若要除錯服務,必須首先啟動服務,然後將一個偵錯程式附加到正在執行服務的程序中。

然後可以使用 visual studio 的所有標準除錯功能來除錯應用程式。

例如,如果附加到 winlogon 程序,然後停止除錯,系統就會暫停,因為沒有 winlogon,系統無法執行。

只能將偵錯程式附加到正在執行的服務。

附加程序會中斷服務的當前執行;它並不真正終止或暫停服務的處理。

也就是說,如果開始除錯時服務正在執行,則在進行除錯時,該服務從技術上說仍處於「已啟動」狀態,但它的處理已掛起。

附加到服務的程序使您能夠除錯大多數服務**,但並非全部;例如,由於服務已經啟動,因此不能用這種方法除錯服務的onstart方法中的**,或除錯用於載入服務的main方法中的**。

解決此問題的一個方法是:在唯一作用是幫助除錯的服務應用程式中建立一個臨時服務。

可以將兩個服務都安裝上,然後啟動此「虛擬」服務載入服務程序。

臨時服務啟動了程序後,就可以使用 visual studio 中的「除錯」選單來附加到服務程序。

當附加該程序之後,可以設定斷點並使用這些斷點來除錯**。

當退出用於附加到該程序的對話方塊時,實際上已處於除錯模式。

您可以使用「服務控制管理器」

開始、停止、暫停和繼續您的服務,因此命中已設定的斷點。

除錯成功後,移除此「虛擬」服務。

說明除錯onstart方法可能比較困難,因為 windows 服務管理器將所有嘗試啟動服務的時間限制在 30 秒內。

有關更多資訊,請參見

如何手動新增windows服務,如何手動新增Windows服務

在windows中手動新增windows服務可以在程式中新增,具體步驟如下 1 開啟windows設定的介面。2 在windows設定中,選擇 應用 選項。3 在應用和功能介面中,相關設定中點選 程式和功能 4 在彈出來的程式和功能介面中,點選 啟用或關閉windows功能 5 在windows功能...

Windows伺服器效能如何,如何在Windows伺服器做效能測試

這裡有許多你只需要做簡單的操作就能對提高伺服器的效能有所幫助。所有的這些都不可能對移動頁檔案到一個指定磁碟有什麼異常情況發生,儘管大多數的操作需要手動完成,但是這些所有的技巧都能夠顯著地提高伺服器的效能。大多數討論關於優化伺服器效能的文章都會集中在使用效能監視器來尋找效能瓶頸問題。效能監視器對於如何...

應用程式為無效的windows映像,如何解決,急

這個好說到 中毒了 重灌系統後不要動其它盤的檔案。開啟 我的電腦 選擇選單欄 工具 下的 資料夾選項 去掉 隱藏受保護的作業系統檔案 推薦 前邊的勾,再勾選 顯示所有檔案和資料夾 在開始選單選擇 搜尋 點選 所有檔案和資料夾 在 全部或部分檔名 裡寫上 usp10.dll 然後直接點 搜尋 系統會搜...