我已经制作了一个Windows服务,应该在Windows启动时自动启动,但由于某种原因它不起作用。我使用下面的代码:
private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
using (ServiceController sc = new ServiceController(serviceInstaller1.ServiceName))
{
sc.Start();
}
}
使用InstallUtil.exe安装服务后,它会自动启动,但是如果我重新启动它,即使服务管理器中的配置是"自动"。
,它也不会启动。我已经尝试更改"自动(延迟启动)"但没有改变。
我将不胜感激。
抱歉我的英语不好,我不是本地人。
由于
答案 0 :(得分:1)
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服务都以相同的方式开发。这个也很好。
答案 1 :(得分:0)
我不久前建了几个Windows服务。也许这有助于解决您的问题
// serviceInstaller1
//
this.serviceInstaller1.ServiceName = "whoisthere";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
this.serviceInstaller1.AfterInstall += new System.Configuration.Install.InstallEventHandler(this.serviceInstaller1_AfterInstall);