2012-05-24 103 views
1

目前我已經在我的代碼下面的語句,讓我調試窗口服務:從Windows服務啓動調試器失敗

#If DEBUG Then 
     System.Diagnostics.Debugger.Launch() 
#End If 

我把這個在OnStart方法,當我啓動了服務,我可以附加到我的Visual Studio實例。目前我有一個這樣做失敗的例子。我有一個虛擬機上安裝的服務,我遇到了以下錯誤:

An unhandled exception ('Launch for user') occurred in MyService.exe [376]. Just-In-Time debugging this exception failed with the following error: Debugger could not be started because no user is logged on.

我從來沒有調試這樣的服務我的本地機器上,所以我不知道發生了什麼問題。如果有問題,用戶將被設置爲LocalSystem。我通過管理員登錄到虛擬機。

回答

0

最後我把下面的語句在的OnStart方法:

#If DEBUG Then 
    While True 

    End While 
#End If 

這使我手動連接到進程在Visual Studio中,並設置在while循環一個破發點。一旦我到達斷點,我就會手動跳出while循環來繼續應用程序的其餘部分。