如何让windows服务自动启动
How to make windows service start automatically
我正在尝试让 windows 服务在您进入会话之前自动启动。
我试过使用 TopShelf
并添加 Start Automatically
方法,但是当我启动 computer.I 时服务没有启动,仍然必须手动启动它。
有什么我遗漏的吗?
服务开始
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());
}
- 检查服务控制面板应用程序 ("services.msc") 和
确认您的服务的启动类型是 "Automatic"。
- 使用事件查看器,检查 Windows 日志 > 应用程序 区域
来自您的服务的消息。也许它是在开机时开始的,但是
快速崩溃或停止。
- 使用事件查看器,检查事件日志的 Windows 日志 > 系统 区域是否有启动服务的错误。查看来源为 "Service Control Manager".
的记录
有关其他建议,请参阅“Why doesn’t my Windows Service Start at Boot?”。
我正在尝试让 windows 服务在您进入会话之前自动启动。
我试过使用 TopShelf
并添加 Start Automatically
方法,但是当我启动 computer.I 时服务没有启动,仍然必须手动启动它。
有什么我遗漏的吗?
服务开始
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());
}
- 检查服务控制面板应用程序 ("services.msc") 和 确认您的服务的启动类型是 "Automatic"。
- 使用事件查看器,检查 Windows 日志 > 应用程序 区域 来自您的服务的消息。也许它是在开机时开始的,但是 快速崩溃或停止。
- 使用事件查看器,检查事件日志的 Windows 日志 > 系统 区域是否有启动服务的错误。查看来源为 "Service Control Manager". 的记录
有关其他建议,请参阅“Why doesn’t my Windows Service Start at Boot?”。