我根據本文開發了一個簡單的C#服務。服務無法啓動
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
我能夠成功啓動首次服務並停止它。在接下來的嘗試中,我無法啓動服務。我得到以下信息。
本地MyNewService服務 計算機啓動然後停止。 某些服務在 他們沒有工作要做時會自動停止,例如, 性能日誌和警報 服務。
請大家幫忙。
我根據本文開發了一個簡單的C#服務。服務無法啓動
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
我能夠成功啓動首次服務並停止它。在接下來的嘗試中,我無法啓動服務。我得到以下信息。
本地MyNewService服務 計算機啓動然後停止。 某些服務在 他們沒有工作要做時會自動停止,例如, 性能日誌和警報 服務。
請大家幫忙。
你看過事件日誌嗎?您通常可以在那裏獲得有關服務錯誤的更詳細的錯誤信息。另外,您是否在使用您的服務寫出日誌?這是另一種方法,你可以找出發生了什麼問題。
您可以通過右鍵單擊計算機並選擇「管理」進入事件日誌。在系統工具下,查看事件查看器 - >應用程序。這是在Windows XP上,但其他Windows操作系統應該是類似的。
基本上這意味着您的服務的主線程出於某種原因已經崩潰。我見過的最常見的是文件系統訪問它自己的日誌文件。
有時候您可以在事件查看器中找到原因,但不幸的是,您運行該服務的用戶很多時間實際上沒有訪問權限來記錄它的錯誤。如果你在一個開發環境中,做一件簡單的事情就是暫時給這個服務一個管理員帳號,首先它會告訴你這個崩潰是由於缺少訪問引起的(因爲它會起作用),其次如果不是,它會允許它寫入事件查看器。一旦你修復了它,一定要採取f的管理員權限,導致長期的,這可能是非常危險的。
實際上該服務正在使用本地系統帳戶權限運行。它實際上是在我第一次嘗試時開始和停止的。還記錄事件。但是當我嘗試第二次嘗試時,它並沒有! – bdhar 2009-12-03 10:01:16
如果服務位於您的開發機器上,您應該能夠讓Visual Studio的調試器在啓動時連接到它,以便您可以識別是否有任何事件導致它崩潰。它涉及一些註冊表編輯,如下所述:http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx
聽起來好像您的主線程由於某種原因正在死亡。在服務的啓動代碼中撥打System.Diagnostics.Debugger.Break()
,例如Main入口點,服務構造函數或OnStart()
方法。當您從服務MMC啓動服務時,系統會提示您輸入調試會話。一旦進入Visual Studio,打開Exceptions對話框(從Debug菜單中)並選中Thrown列中的框。然後從那裏調試以找到問題。
OnStart的郵政編碼 – 2009-12-03 14:46:17