无法打开计算机“.”上的服务控制管理器。此操作可能需要其他特权。
无法打开计算机“.”上的服务控制管理器。此操作可能需要其他特权。
出错的代码段
该服务主要监视另一个服务的服务状态
定时获取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);
这篇博客探讨了在服务控制管理中遇到的问题,即无法打开服务控制管理器并提示需要额外特权。代码示例展示了尝试监控GprsService服务的状态,如果服务未响应或异常终止,会进行重启操作。在服务状态检查和重启过程中,使用了ServiceController类并等待服务状态变化。
1万+

被折叠的 条评论
为什么被折叠?



