windows-services – 自动服务无法启动

我安装了一些控制台应用程序作为在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下运行,并使用以Admin身份执行的批处理文件进行安装.批处理文件包括以下内容

app.exe install --sudo
app.exe start

执行批处理文件后,服​​务按预期运行.但是,如果我重新启动它们仍然停止

事件日志为每个服务返回相同的事件对:

Event 7000: The service Failed to start due to the following error:
The service did not respond to the start or control request in a timely fashion.

Event 7009: A timeout was reached (30000 milliseconds) while waiting for the service to connect.

重启后启动应用程序的唯一方法是从提升的命令提示符启动app.exe启动.

有任何想法吗?

解决方法

好的,我已经修好了.服务启动类型设置为自动,但我已将它们更改为自动(延迟),所有现在都在启动时正常运行.

我也修改了安装批处理文件以备将来使用:

app.exe install --delayed --sudo
app.exe start

只是猜测,但可能依赖于可能无法使用的网络服务.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...