2011-03-02 71 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