Windows服务仅在重新启动计算机上运行

时间:2015-08-03 18:22:27

标签: c# .net windows-services

我已经创建了一个Windows服务,我想在Windows启动时运行它。要仅在启动完成后运行它,我已在服务安装程序中插入以下代码:

this.WinSvcInstaller.DelayedAutoStart = true;

使用以下代码使服务在安装后立即运行:

private void WinSvcInstaller_AfterInstall(object sender, InstallEventArgs e)
{
   ServiceController sc = new ServiceController(ServiceName);
   sc.Start();
}

其中ServiceName是在WinSvcInstaller中创建的属性。

一旦服务完成,无论是成功还是失败,它都会自动停止使用以下代码:

ProjectInstaller projectInstaller = new ProjectInstaller();
ServiceController serviceController = new ServiceController(projectInstaller.ServiceName);
if (serviceController.Status.Equals(ServiceControllerStatus.Running)
    || serviceController.Status.Equals(ServiceControllerStatus.StartPending))
{                    
    this.Stop();
}

我的主要问题是除非我重启计算机意义,否则服务不会运行,只有在我重新启动计算机时服务才会运行。如果我关闭然后在关闭后再次手动启动计算机,则服务不会运行。任何人都可以帮助我为什么会这样?我缺少什么?

0 个答案:

没有答案