2011-12-22 136 views
-1

我在Windows中創建了一項服務,並在註冊表中設置了enteries,以便服務在登錄時自動啓動。如何確保我的服務始終處於運行狀態

現在的問題是,在任務管理器 - >服務領域,我服務的狀態正在運行日誌後只有2-3分鐘。

這個時候我的服務狀態變爲停止後,它永遠不會再切換到運行。 它也沒有做它的指定工作。

我想知道在什麼註冊表更改或可以由該服務的屬性,以確保服務始終運行。

+0

如果服務停止運行,這意味着它的所有線程都已經退出,無論是故意或因未處理的錯誤條件。因此,這是代碼中的錯誤,而不是必須在Windows中設置的內容,我們無法僅從描述中修復它。在事件日誌中是否有任何消息:您的服務中有未處理的錯誤? – 2011-12-22 12:50:06

+0

沒有,也不應該有。如果管理員想要阻止它呢?與其他人所建議的爲什麼會停止交易。然後確保你的消費者能夠正確地發現它不在那裏,並給予客戶解決問題的線索。 – 2011-12-22 12:59:16

回答

0

有機會,你得到它正在關閉的過程中未處理的異常。

你需要記錄添加到您的Windows服務 - 東西,將所有的異常寫入到事件日誌是做一個相當普遍的事情。

這將讓你明白爲什麼服務停止。在這一點上,你希望有足夠的信息來解決編碼錯誤。

我想知道在什麼註冊表更改或可以由該服務的屬性,以確保服務始終運行。

那麼,假設問題與您的服務,沒有配置,將有所幫助。

+0

Thanx所有的答覆..其實我不知道如何,但現在當我重新啓動我的系統,我的服務並沒有啓動。首先它的狀態是'開始',然後它直接變成'已停止'當我看着EventViewer時,它說'該服務沒有及時響應啓動或控制請求'EventID:7000和 – 2011-12-22 14:50:39

+0

和 '在等待KeyLogger服務連接時出現超時(30000毫秒)'與EventID:7009 任何幫助都很受讚賞 – 2011-12-22 14:57:10

+0

@PankajVatsa - 什麼是KeyLogger服務?它沒有開始。 – Oded 2011-12-22 14:58:09