服务未响应在windows server 2008 r2上使用服务控制器的c#程序

服务未响应在windows server 2008 r2上使用服务控制器的c#程序,c#,windows,windows-services,windows-server-2008,C#,Windows,Windows Services,Windows Server 2008,我有一个C#程序,作为我创建的windows服务的GUI。服务可以根据GUI中的按钮按下停止或启动…启动按钮按下事件将调用下面的函数。在我的普通电脑上,这段代码运行良好。但是,当我将此GUI应用程序放在服务器上时,它不会启动或停止服务。服务器服务与常规pc服务之间是否存在差异。我正在使用Windows Server 2008 R2和Vista Business…提前感谢 public static bool StartService(string serviceName, int timeo

我有一个C#程序,作为我创建的windows服务的GUI。服务可以根据GUI中的按钮按下停止或启动…启动按钮按下事件将调用下面的函数。在我的普通电脑上,这段代码运行良好。但是,当我将此GUI应用程序放在服务器上时,它不会启动或停止服务。服务器服务与常规pc服务之间是否存在差异。我正在使用Windows Server 2008 R2和Vista Business…提前感谢

  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;
        }
    }
两件事:

首先,确保try/catch块正在记录(或以其他方式通知)抛出的任何异常。还要检查服务器事件日志中的错误


其次,检查在服务器上运行您的程序的帐户的权限。该帐户可能没有足够的权限来停止和启动您的服务,而您在PC上的帐户有此权限。

对于权限-如果我能够在“服务查看器”中启动/停止该服务,这是否意味着我有足够的权限,或者我仍然需要对此进行调查?@Jonathan我相信这确实意味着您有足够的权限。事件日志中是否有异常或任何内容?检查服务器的系统日志;我相信事件ID 7036记录了服务的启动/停止。@Jay Riggs-我查看了日志,看到一些东西提到了我的服务,但它只说它启动和停止了。我相信基于我从服务查看器停止和启动服务的时间。没有别的了。我将在catch子句中添加一些输出语句…作为更新,我捕获了异常,它说“无法在计算机上打开服务”。“我在谷歌搜索,还没有找到关于这到底意味着什么或问题可能是什么的明确答案。这完全是因为应用程序没有权限吗???还是有别的事?thx@Jonathan是否有任何额外的异常信息可能提供进一步的线索(即内部异常)?您的服务是否可能在启动后立即退出(可能通过异常)?也许您可以下载一个示例服务,它除了运行之外什么都不做,并在上面尝试您的服务启动/停止程序;如果它起作用,那么问题在于你的服务。