5

我可是從我的電腦偶爾我調試窗口服務的時候,其實Windows服務在不同的服務器遠。 林使用Visual Studio遠程調試器做通過經由Visual Studio的C#遠程調試關閉窗口服務

工具連接到服務器,以便和然後附着我的源到服務 - >附接至處理 - >限定符=服務器IP

問題是,每當我由於互聯網錯誤等原因而失去與服務器的連接時,Windows服務器就會停止並在我的服務器中關閉,我必須重新啓動它。

也許我還沒有提供充分的資料,所以請提出要求,而不是向下投票。

TIA。

+0

我建議把一個'試/ catch'在Windows服務,看看如果由於某種原因而崩潰。如果是這樣,並且連接是原因,那麼它可能會讓你繼續更多。 – Noctis 2014-09-01 14:29:33

+0

當我已經開發的服務,我通常會建立他們有兩種形式:一個是服務,另一個是控制檯應用程序,以使它們的區別僅在於所必需的「包裝」的代碼在各自的環境中運行它們。我使用控制檯版本來開發/調試我的代碼,並在準備部署時簡單構建服務。我從不需要附加/調試服務流程。 – Zenilogix 2014-09-01 14:38:35

+0

感謝您的建議,但它不是問題.. try和catch我認爲它多餘的,因爲我肯定知道它從我的本地計算機上的連接錯誤,而不是服務器.. 關於控制檯,我也跑服務在本地跟蹤它,遠程只適用於特定情況.. – 2014-09-01 14:48:50

回答

1

檢查事件查看器中的遠程服務器上。如果服務崩潰,應用程序日誌中應該有一個條目。如果您需要更多詳細信息,則可以讓Windows Error Reporter在服務崩潰時捕獲崩潰轉儲。詳細信息在這裏: http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181(v=vs.85).aspx

GitHub推薦這個作爲他們的Windows客戶端的調試過程。你可以從這裏抓取.reg文件,並調整它以匹配你的路徑/可執行文件。 https://help.github.com/articles/getting-a-crash-dump/

然後你就可以把.dmp文件到您的計算機,並在Visual Studio中檢查它/ WinDBG的/ SOS http://msdn.microsoft.com/en-us/library/d5zhxt22.aspx http://msdn.microsoft.com/en-us/library/windows/hardware/ff540665(v=vs.85).aspx