C#启动Windows服务及关闭实例实现的步骤和使用调用的类是什么呢?让我们来看看具体的实现:
C# 控制Windows服务的启动与关闭
C#启动Windows服务及关闭具体实现就向你介绍到这里,希望对你了解和学习C#启动Windows服务及关闭有所帮助。
- // ......
- using System.ServiceProcess;
- // ......
- /// <summary>
- /// Restart windows service
- /// </summary>
- /// <param name="serviceName">
- ///the windows service display name</param>
- /// <returns> If the restart successfully
- ///return true else return false</returns>
- public static bool RestartWindowsService(string serviceName)
- {
- bool bResult = false;
- try
- {
- try
- { //C#启动Windows服务及关闭
- 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;
- }
- //C#启动Windows服务及关闭
- /// <summary>
- /// Start windows service
- /// </summary>
- /// <param name="serviceName">
- ///the windows service display name</param>
- /// <returns>If the start successfully
- ///return true else return false</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;
- }
- //C#启动Windows服务及关闭
- /// <summary>
- /// Stop windows service
- /// </summary>
- /// <param name="serviceName">the windows
- ///service display name</param>
- /// <returns>If the stop successfully
- ///return true else return false</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;
- }
- } //C#启动Windows服务及关闭
- }
- return bResult;
- }
【编辑推荐】