Nei*_*son 5 windows-services windows-server-2008-r2 topshelf windows-server-2012
我安装了一些控制台应用程序作为在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));
});
Run Code Online (Sandbox Code Playgroud)
这些应用程序在Win 2008 R2下运行,并使用以Admin身份执行的批处理文件进行安装.批处理文件包括以下内容:
app.exe install --sudo
app.exe start
Run Code Online (Sandbox Code Playgroud)
执行批处理文件后,服务按预期运行.但是,如果我重新启动它们仍然停止
事件日志为每个服务返回相同的事件对:
事件7000:由于以下错误,服务无法启动:服务未及时响应启动或控制请求.
事件7009:等待服务连接时达到超时(30000毫秒).
重启后启动应用程序的唯一方法是app.exe start从提升的命令提示符运行.
有任何想法吗?
好的,我已经修好了。服务启动类型设置为自动,但我已将它们更改为自动(延迟),现在所有服务都在启动时正常运行。
我还修改了安装批处理文件以供将来使用:
app.exe install --delayed --sudo
app.exe start
Run Code Online (Sandbox Code Playgroud)
只是猜测,但可能取决于可能不可用的网络服务。
| 归档时间: |
|
| 查看次数: |
7324 次 |
| 最近记录: |