2012-11-15 41 views
1

我已經寫了一個服務,並使用C#和相應的服務方法等在代碼中啓動一個服務,它的構建和安裝作爲服務,服務啓動正常,但我不'沒有看到一個正在運行的進程,我也沒有看到它正在寫入它應該寫爲輸出文件的日誌。我注意到,如果我暴力破解並單擊exe文件,但顯然這不符合預期的行爲。任何想法爲什麼這可能會發生?我使用installutil安裝了它,並以幾種方式啓動(services.msc,net start),但它們都沒有工作。C#服務編程問題開始

在此先感謝。

+3

C#服務不會在相同的用戶上下文中運行。例如,你不能截取用戶桌面的截圖,因爲你的服務正在運行的桌面會話(我認爲會話0)?*沒有桌面截圖。請注意如何寫入日誌文件。請參閱:http://stackoverflow.com/questions/858597/why-wont-my-windows-service-write-to-my-log-file 至於進程,它可能會作爲系統運行?您是否正在查看任務管理器中的「顯示所有用戶的進程」? – Jason

+2

您可以顯示您用於啓動過程的代碼嗎?即在program.cs和您的服務的onstart過程中的位? – andrew

回答

1

你看過Windows事件日誌,看看你是否收到消息說服務已經開始?那裏有錯誤嗎?如果它說它已經開始,並且沒有任何錯誤,那麼您的服務可能已經開始正常,但未能按照您的要求做。

不要寫入日誌文件,而應考慮寫入事件日誌 - 這是服務的首選行爲。 Log4Net可以爲此提供幫助,但編寫自己並不難。

編寫您的服務以便它也可以從命令行啓動以進行調試也很有用。同樣,你不必做所有的工作,TopShelf可以幫助解決這個問題。