/// <summary>
/// WindowsServiceManage
/// </summary>
public class WindowsServiceManage
{
/// <summary>
/// 重启服务
/// </summary>
/// <param name="serviceName"></param>
/// <returns></returns>
public static bool RestartWindowsService(string serviceName)
{
bool bResult = false;
try
{
try
{
StopWindowsService(serviceName);
Thread.Sleep(1000);
}
catch (Exception ex)
{
StartWindowsService(serviceName);
Thread.Sleep(1000);
StopWindowsService(serviceName);
Thread.Sleep(1000);
Console.WriteLine(ex.Message);
}
try
{
StartWindowsService(serviceName);
Thread.Sleep(1000);
}
catch (Exception ex) //C#启动Windows服务及关闭
{
StopWindowsService(serviceName);
Thread.Sleep(1000);
StartWindowsService(serviceName);
Thread.Sleep(1000);
Console.WriteLine(ex.Message);
}
bResult = true;
}
catch (Exception ex)
{
bResult = false;
throw ex;
}
return bResult;
}
/// <summary>
/// 停止服务
/// </summary>
/// <param name="serviceName">服务名称</param>
/// <returns></returns>
public static bool StopWindowsService(string serviceName)
{
ServiceController[] scs = ServiceController.GetServices();
bool bResult = false;
foreach (ServiceController sc in scs)
{
if (sc.DisplayName == serviceName)
{
try
{
sc.WaitForStatus(ServiceControllerStatus.Running,
TimeSpan.FromSeconds(30));
sc.Stop();
bResult = true;
}
catch (Exception ex)
{
bResult = false;
throw ex;
}
}
}
return bResult;
}
/// <summary>
/// 启动服务
/// </summary>
/// <param name="serviceName">服务名称</param>
/// <returns></returns>
public static bool StartWindowsService(string serviceName)
{
ServiceController[] scs = ServiceController.GetServices();
bool bResult = false;
foreach (ServiceController sc in scs)
{
if (sc.DisplayName == serviceName)
{
try
{
sc.WaitForStatus(ServiceControllerStatus.Stopped,
TimeSpan.FromSeconds(30));
sc.Start();
bResult = true;
}
catch (Exception ex)
{
bResult = false;
throw ex;
}
}
}
return bResult;
}
}