2011-06-28 33 views
0

我已經安裝了一個服務,我想用下面的代碼開始吧:的ServiceController開始手冊StartType只,但沒有自動

ServiceController serviceController = new ServiceController("My.Service"); 
serviceController.Start(); 

現在,如果服務被設置爲「手動」一個StartType,這工作完美。但是,如果StartType設置爲「自動」,它什麼也不做。沒有錯誤,沒有例外,它只是不起作用。

我該如何解決這個問題?

+0

任何在事件日誌中:

請如下窗口服務的編輯過程中設置的賬戶類型,以本地服務? – JohnD

+0

@JohnD - 沒什麼。我看到手動啓動它的事件,或者它被設置爲手動和我的開始()調用時發生的事件。我很好奇,如果在設置爲自動啓動類型時需要做一些不同的事情? – JustinN

+0

這可能是因爲它已經開始。控制面板+管理工具+服務來檢查服務狀態。 –

回答

0

如果服務可以在手動模式下運行,請考慮服務的其他可控制方面,例如服務執行的帳戶(LocalSystem或其他某個帳戶?)。

1.Right click ServiceProcessInstaller1 and go to the properties tab 

     a.Change the account to "LocalService" 

    2. Save and try it. 

希望這將幫助你........

+0

這有效,但我需要它在特定用戶下工作,而不是LocalService,因爲它需要訪問MS SQL數據庫。任何其他想法? – JustinN

+0

@JustinN,我不認爲在LocalService下運行會導致任何問題,如果您在app.config文件中的連接字符串中使用SQL身份驗證而不是Windows身份驗證。 – Harun

+0

@JustinN,如果您在SQL Server中使用Windows身份驗證,它將使用運行該服務的本地系統帳戶。因此,請嘗試將服務的LoginAccount更改爲LocalSystem,並在此處提供您的系統登錄憑據。安裝後也可以通過「控制面板 - >管理工具 - >服務 - > yourService」屬性 - >登錄輕鬆完成。 – Harun