如何重新启动windows服务

本文关键字:服务 windows 重新启动 | 更新日期: 2023-09-27 17:52:37

我得到了一个片段从http://www.csharp-examples.net/restart-windows-service/重新启动windows服务,但我不确定在哪里放置代码?

在我的应用程序中安装windows服务后,我需要重新启动windows服务。

谢谢!

private void ProjectInstaller_OnAfterInstall(object sender, InstallEventArgs e)
    {
        //base.OnAfterInstall(e);
        ServiceController sc = new ServiceController("MyServiceName", Environment.MachineName);
        sc.Start();
        System.Threading.Thread.Sleep(3000);
        sc.Stop();
        System.Threading.Thread.Sleep(2000);
        sc.Start();
        System.Threading.Thread.Sleep(3000);
    }

如何重新启动windows服务

我认为你不应该放入after install。安装程序可能会在安装后启动服务,这似乎是一种混乱的方式。如果你真的需要,你可以创建一个小的应用程序或.dll来完成这个任务,并且可以在一切完成后从安装程序本身调用它。然而,我会调查为什么需要在安装后重新启动服务,因为这主要指向程序中的错误。解决这个问题应该更容易。

这个片段应该可以重新启动。不要使用sleep,因为服务可能需要超过这个时间来启动/停止,你会得到一个异常。

var sc = new ServiceController("MyService");
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30));

假设您有一些安装了该服务的应用程序,重新启动(或以其他方式控制服务)的代码应该在您的应用程序中运行