2011-03-02 34 views
0

我有一個C#程序,它充當我創建的Windows服務的GUI。該服務可以基於從GUI按下按鈕來停止或啓動...開始按鈕按下事件將調用下面的功能。在我的普通電腦上,這段代碼工作正常。但是,當我將這個GUI應用程序放在我的服務器上時,它不會啓動或停止服務。有沒有我缺少的東西,或者是否有與服務器服務不同的服務器服務。我正在使用Windows Server 2008 R2和Vista Business ...提前致謝。服務沒有響應在Windows Server 2008上使用服務控制器的c#程序r2

public static bool StartService(string serviceName, int timeoutMilliseconds) 
    { 
     ServiceController service = new ServiceController(serviceName); 
     try 
     { 
      TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds); 

      service.Start(); 
      service.WaitForStatus(ServiceControllerStatus.Running, timeout); 
      if (service.Status == ServiceControllerStatus.Running) 
       return true; 
      else 
       return false; 



     } 
     catch 
     { 
      // ... 
      return false; 
     } 
    } 

回答

0

兩件事情:

首先,確保你的try/catch塊被記錄(或以其他方式通知你)拋出的異常的。同時檢查服務器事件日誌以查找錯誤。

其次,檢查在服務器上運行您的程序的帳戶的權限。該帳戶可能沒有足夠的權限來停止並啓動您的服務,而您的PC上的帳戶卻可以。

+0

對於權限 - 如果我能夠在服務查看器中啓動/停止服務,這是否意味着我擁有足夠的權限,還是需要查看該權限? – 2011-03-02 20:20:46

+0

@Jonathan我相信這確實意味着你有足夠的權限。事件日誌中的任何異常或任何事情?檢查服務器的系統日誌;我相信事件ID 7036記錄服務啓動/停止。 – 2011-03-02 20:39:13

+0

@Jay Riggs - 我看了看日誌,發現有些東西指的是我的服務,但它只是說它啓動和停止。我相信基於那些當我停止並從服務查看器啓動服務的時候。沒有別的。我將在catch子句中添加一些輸出語句...... – 2011-03-02 21:03:33

相關問題