2013-03-22 122 views
0

我有啓動和停止服務代碼無法在計算機上啓動服務'。'

開始:

ServiceController service = new ServiceController("MyService"); 
service.Start(); 
var timeout = new TimeSpan(0, 0, 5); // 5seconds 
service.WaitForStatus(ServiceControllerStatus.Running, timeout); 
btnTxt = "Stop Service"; 

停止:

ServiceController service = new ServiceController("MyService"); 
service.Stop(); 
var timeout = new TimeSpan(0, 0, 5); // 5seconds 
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout); 
btnTxt = "Start Service"; 

,當我直接用我的Windows窗體應用程序的代碼和運行visula工作室爲管理員工作正常。 但是現在我創建了一個類庫,並從Form中的類庫調用該方法。 cs文件。因此,現在它給出了「無法在計算機上啓動服務Myservice」的例外情況,任何人都可以幫助解決可能存在的問題 類庫中的所有其他方法在其他情況下工作正常

回答

0

服務將沒有權限「與桌面交互」和Form.cs將引用需要該權限庫,因此該服務將無法啓動。

目前有可用的一個非常有用的解決方案herehere將運行您在調試器中作爲控制檯應用程序的服務,或以其他方式作爲「正確」服務。

0

修改您的代碼至少做一些日誌:

你可以添加一個嘗試捕捉的不以爲然

try{ 

// your code 
} 
catch (Exception ex) 
{ 
    System.Diagnostics.Trace.WriteLine(ex.ToString()); 
} 

並粘貼在這裏ex.message

相關問題