2015-11-22 214 views
1

這是一個使用VS2015和.NET Framework 4.5的Windows服務項目。安裝後自動啓動服務

我試圖通過後期製作操作安裝我的服務,然後通過使用ServiceController.Start()自動啓動它。這裏是我的代碼,試圖啓動服務:

private void ProjectInstaller_Committed(object sender, InstallEventArgs e) 
{ 
    using (var sw = new System.IO.StreamWriter(Console.OpenStandardOutput())) 
    { 
    using (ServiceController sc = new ServiceController(serviceInstaller1.ServiceName)) 
    { 
     try 
     { 
     sw.Write("Starting service..."); 
     sc.Start(); 
     sc.WaitForStatus(ServiceControllerStatus.Running); 
     sw.Write("Service status is now set to {0}.", sc.Status.ToString()); 
     } 
     catch (InvalidOperationException) 
     { 
     sw.Write("Could not start the service."); 
     } 
    } 
    } 
} 

服務安裝就好了,但我的電話ServiceController.WaitForStatus()似乎一直等下去。我試圖從CommittedAfterInstall事件中調用它。

回答

2

終於想出來了。我的Start()調用實際上是失敗的,直到我進入事件查看器時才注意到。該錯誤信息是這樣的:

Your process does not have access rights to this namespace 

谷歌搜索,其中公認的答案奏效了,我長大another SO post錯誤消息。希望這可以幫助那些在路上的人。