这个例子展示了如何用C#编程实现启动、停止和重启Windows服务。
启动服务
下面的方法尝试通过指定的服务名称启动服务。然后等待知道服务运行或发生超时。
[C#]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public
static
void
StartService(
string
serviceName,
int
timeoutMilliseconds)
{
ServiceController service =
new
ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
// ...
}
}
|
停止服务
下面的方法尝试停止指定的服务,然后等待服务停止或发生超时。
[C#]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public
static
void
StopService(
string
serviceName,
int
timeoutMilliseconds)
{
ServiceController service =
new
ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
catch
{
// ...
}
}
|
重启服务
这个方法是上两个方法的合并,尝试停止服务(并等待,直到它停止)然后启动服务(直到服务运行)。指定的超时时间是两个操作合计的超时时间。