无法打开计算机“.”上的服务控制管理器。此操作可能需要其他特权。
出错的代码段
该服务主要监视另一个服务的服务状态
定时获取GprsService的服务状态,如果超过指定时间没有获取到数据,重启GprsService服务.
  try
            {
                ServiceController serviceGprs = new ServiceController("GprsService");
                string serviceState = serviceGprs.Status.ToString();                //最近一条数据与当前时间的时间差
                int timeDiff = Helper.GetLastData();                if (serviceState.Equals("Stopped"))
                {
                    timer.Enabled = false;
                    serviceGprs.Start();
                    //等待
                    Helper.AddLog("GprsService异常终止,正在重新启动!");
                    serviceGprs.WaitForStatus(ServiceControllerStatus.Running);
                    Helper.AddLog("GprsService异常终止,启动完毕!");
                    timer.Interval = outTime * 60 * 1000;
                    timer.Enabled = true;
                }
                else if (timeDiff > outTime)
                {
                    timer.Enabled = false;
                    //等待
                    Helper.AddLog("GprsService没有响应,正在停止服务!");
                    serviceGprs.Stop();
                    serviceGprs.WaitForStatus(ServiceControllerStatus.Stopped);
                    Helper.AddLog("服务已经停止,正在重新启动服务!");
                    serviceGprs.Start();
                    serviceGprs.WaitForStatus(ServiceControllerStatus.Running);
                    Helper.AddLog("GprsService没有响应,启动完毕!");
                    timer.Interval = outTime * 60 * 1000;
                    timer.Enabled = true;
                }
            }
            catch (Exception ex)
            {                Helper.AddErrLog(ex);
            }平时该服务一直运行正常并且能够正常重启指定的GprsService服务
今天一看,9月12号23点的时候报了错误,捕获的错误日志如标题所示.
怎么回事???
另一个服务器上的监视服务也是报同样的错误,时间是9月23凌晨3点.奇怪了
难道那段时间服务器上的360漏洞修复造成的???

解决方案 »

  1.   

    这个帖子的正确答案有点假,跟360一点关系都没有
    遇到过同样的问题
    应该是因为在WIN7或VISTA下我们启动"Visual Studio 2008命令提示"的时候没有以管理员身份运行.权限不够所致.
      

  2.   

    就这回复还要登陆后查看?csdn越来越垃圾啦
      

  3.   

    就是用管理员身份运行命令提示符,右击命令提示符(开始/程序/vs2012/本机工具命令提示)选择以管理员身份运行,如果没有以管理员身份运行选项,则进行如下操作:
    将如下代码保存为reg格式的文件然后运行就可以了:
    Windows Registry Editor Version 5.00 
    [HKEY_CLASSES_ROOT\*\shell\runas] 
    @="管理员取得所有权" 
    "NoWorkingDirectory"="" 
    [HKEY_CLASSES_ROOT\*\shell\runas\command] 
    @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 
    [HKEY_CLASSES_ROOT\exefile\shell\runas2] 
    @="管理员取得所有权" 
    "NoWorkingDirectory"="" 
    [HKEY_CLASSES_ROOT\exefile\shell\runas2\command] 
    @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" 
    [HKEY_CLASSES_ROOT\Directory\shell\runas] 
    @="管理员取得所有权" 
    "NoWorkingDirectory"="" 
    [HKEY_CLASSES_ROOT\Directory\shell\runas\command] 
    @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" 
    "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" 操作完后就会出现以管理员身份运行该程序了!