我安装了一些控制台应用程序作为在 topshelf 下运行的服务,如果我手动安装和运行它们可以正常工作。但是,即使启动类型设置为自动,也不会自动启动。
应用程序配置如下:
HostFactory.Run(x =>
{
x.Service<MyApp>(s =>
{
s.ConstructUsing(name => container.Resolve<MyApp>());
s.WhenStarted(tc => tc.Start());
s.WhenStopped(tc =>
{
tc.Stop();
container.Dispose();
});
});
x.RunAsLocalSystem();
x.StartAutomatically();
x.EnableServiceRecovery(rc => rc.RestartService(5));
});
这些应用程序在 Win 2008 R2 下运行,并使用以管理员身份执行的批处理文件进行安装。批处理文件包括以下内容:
app.exe install --sudo
app.exe start
执行批处理文件后,服务按预期运行。但是,如果我重新启动,它们仍然停止。
事件日志为每个服务返回相同的事件对:
事件 7000:由于以下错误,服务无法启动:服务未及时响应启动或控制请求。
事件 7009:等待服务连接时达到超时(30000 毫秒)。
重新启动后启动应用程序的唯一方法是app.exe start
从提升的命令提示符运行。
有任何想法吗?