本文主要是介绍c#中对系统服务的操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在对系统服务进行操作时,若使用ServiceController sc = new ServiceController("SQL Server (MSSQLSERVER)");这样的方法来获取服务对应的ServiceController,会出现一些问题:当系统中没有名为SQL Server (MSSQLSERVER)的服务时,sc不会返回
null,而是会返回一个ServiceController,但返回的这个ServiceController中的属性均无法访问,一访问就会抛出异常。
可以用下面的方法来通过名称获取系统中的某个服务:
ServiceController[] serviceList = ServiceController.GetServices(); //获取当前系统所有服务的列表
ServiceController myService = null;
foreach (ServiceController forLoop in serviceList)
{
if (forLoop.DisplayName == "SQL Server (MSSQLSERVER)") //循环直到找到了所需
要的服务
{
myService = forLoop;
break;
}
}
if (myService == null) //若未找到所需要的服务,则报错
跳出
{
MessageBox.Show("没有找到名为 SQL Server (MSSQLSERVER) 的服务");
return;
}
myService.Stop(); //停止服务
//等待直到该服务被停止或30秒后,注意30秒后没有停止会抛出异常
myService.WaitForStatus(ServiceControllerStatus.Stopped,new TimeSpan(0,0,30));
myService.Start(); //启动服务
//等待直到该服务启动完成,然后再执行其它的代码,以防止出错
myService.WaitForStatus(ServiceControllerStatus.Running,new TimeSpan(0,0,30));
这篇关于c#中对系统服务的操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!