如何使Windows服务自动启动

时间:2019-07-03 06:15:47

标签: .net windows-services startup

我正在尝试使Windows服务在您进入会话之前自动启动。
我尝试使用TopShelf并添加了Start Automatically方法,但是启动计算机时该服务无法启动。我仍然必须手动启动它。 我有什么想念的吗?

服务启动

public static void RunService() {
            var exitCode = HostFactory.Run(x => {
                x.Service<SomeService>(s => {
                    s.ConstructUsing((h) => new SomeService());
                    s.WhenStarted(t => t.Start());
                    s.WhenStopped(t => t.Stop());
                    s.WhenSessionChanged((daemon, host, args) => daemon.SessionChanged(args.SessionId));
                });
                x.EnableSessionChanged();
                x.EnableShutdown();

                x.StartAutomatically();
                x.RunAsLocalSystem();

            });
            int exitCodeValue = (int)Convert.ChangeType(exitCode, exitCode.GetTypeCode());
        }

1 个答案:

答案 0 :(得分:1)

  1. 检查“服务控制面板”应用程序(“ services.msc”),然后 确认服务的启动类型为“自动”。
  2. 使用事件查看器,检查 Windows日志>应用程序区域, 来自您的服务的消息。也许它是在启动时启动的,但是 崩溃或迅速停止。
  3. 使用事件查看器,检查事件日志的 Windows日志>系统区域,以查看启动服务的错误。查看源为“服务控制管理器”的记录。

有关其他建议,请参见“ Why doesn’t my Windows Service Start at Boot?”。