【发布时间】:2013-07-11 07:00:03
【问题描述】:
我安装了一些控制台应用程序作为在 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。
有什么想法吗?
【问题讨论】:
标签: windows-services windows-server-2008-r2 windows-server-2012 topshelf