如何在C#中自动启动windows服务
本文关键字:自动启动 windows 服务 | 更新日期: 2023-09-27 18:26:16
我已经制作了一个windows服务,它应该在windows启动时自动启动,但由于某种原因,它不起作用。我使用了以下代码:
private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
using (ServiceController sc = new ServiceController(serviceInstaller1.ServiceName))
{
sc.Start();
}
}
使用InstallUtil.exe安装服务后,它会自动启动,但如果我重新启动,即使服务管理器中的配置为"自动",它也不会启动。
我已经尝试更改为"自动(延迟启动)",但没有任何更改。
我很感激你的建议。
抱歉我英语不好,我不是本地人。
感谢
namespace curUsers
{
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
var processInstaller = new ServiceProcessInstaller();
var serviceInstaller = new ServiceInstaller();
//set the privileges
processInstaller.Account = ServiceAccount.LocalSystem;
serviceInstaller.DisplayName = "curUsers";
serviceInstaller.StartType = ServiceStartMode.Automatic;
//must be the same as what was set in Program's constructor
serviceInstaller.ServiceName = "curUsers";
this.Installers.Add(processInstaller);
this.Installers.Add(serviceInstaller);
}
private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
}
private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
}
}
}
试一下,我所有的windows服务都是以相同的方式开发的。这个也很好用。
我不久前构建了几个windows服务。也许这将有助于解决您的问题
// serviceInstaller1
//
this.serviceInstaller1.ServiceName = "whoisthere";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
this.serviceInstaller1.AfterInstall += new System.Configuration.Install.InstallEventHandler(this.serviceInstaller1_AfterInstall);