服务错误 1053:无法及时启动

Posted

技术标签:

【中文标题】服务错误 1053:无法及时启动【英文标题】:Service Error 1053: Could not start in timely fashion 【发布时间】:2016-01-09 11:11:36 【问题描述】:

在你问之前,是的,我搜索并搜索了这个问题,尝试了其他人为他们工作的东西,但一无所获。我试过了:

在发布模式下运行 在 LocalSystem、LocalService 和命名帐户上运行 我的项目中没有调试代码

我的项目摘要是一个 Windows 服务,它在设定的时间扫描源文件夹中的文件,将它们转换并放置在目标文件夹中。这些设置可以在 GUI 中更改,该 GUI 会更改服务定期扫描的 XML 文件。

成品包装在 InstallShield 中。一切都在 VisualStudio 中运行。我可以安装程序并且服务完美运行。当我将发布版本自己安装在同一台机器上时,我收到了这个 1053 错误。

这是我的 OnStart

    protected override void OnStart(string[] args)
    
        // Update the service state to Start Pending.
        ServiceStatus serviceStatus = new ServiceStatus();
        serviceStatus.dwCurrentState = ServiceState.SERVICE_START_PENDING;
        serviceStatus.dwWaitHint = 100000;
        SetServiceStatus( this.ServiceHandle, ref serviceStatus );

        // Set up a timer to trigger every 30s
        System.Threading.Thread t1 = new System.Threading.Thread( new System.Threading.ThreadStart( this.InitTimer ) );
        t1.Start();

        // Set folders and time from xml
        System.Threading.Thread t2 = new System.Threading.Thread( new System.Threading.ThreadStart( this.InitSettings ) );
        t2.Start();

        // Update the service state to Running.
        eventLog1.WriteEntry( "Service successfully started", EventLogEntryType.Information, eventId++ );
        serviceStatus.dwCurrentState = ServiceState.SERVICE_RUNNING;
        SetServiceStatus( this.ServiceHandle, ref serviceStatus );
    

这是我的主要内容

    public WTVService(string[] args)
    
        InitializeComponent();
        string eventSourceName = "Searcher";
        string logName = "WTVConverter";
        if ( args.Count() > 0 )
        
            eventSourceName = args[0];
        
        if ( args.Count() > 1 )
        
            logName = args[1];
        
        eventLog1 = new EventLog();
        if ( !EventLog.SourceExists( eventSourceName ) )
        
            EventLog.CreateEventSource( eventSourceName, logName );
        
        eventLog1.Source = eventSourceName; eventLog1.Log = logName;
    

让我知道哪些其他信息可能会有所帮助。

编辑:另外,如果有影响,错误会立即出现,而不是在假定的 30 秒超时规则之后。

【问题讨论】:

【参考方案1】:

所以这很有趣。我敢肯定 InstallShield 人群在这里是有限的,但这可能会对某人有所帮助。最终起作用的是将构建模式从 SingleImage 更改为 DVD-5。我不能说为什么,但它现在完美无缺。我在一台从未运行过我的程序的机器上进行了测试,一切正常。

【讨论】:

【参考方案2】:

当您通过 InstallShield 部署任何服务时,您需要选择 LocalSystem 用户名或管理员用户凭据。

任何windows服务的执行都需要Admin用户或者LocalSystem用户。

因此,InstallShield 中的服务提供了用户凭据。

【讨论】:

正如我在帖子中提到的那样,我使用的是 LocalSystem。我还尝试了管理员帐户和我自己的帐户。使用不同帐户时,我的问题没有任何改变。

以上是关于服务错误 1053:无法及时启动的主要内容,如果未能解决你的问题,请参考以下文章

Windows 无法启动Redis服务器(位于本地课计算机上)错误1053:服务没有及时响应启动或控制请求

在本地计算机无法启动DCOM Server Process Launcher 服务。错误 1053:服务没有及时响应启动或控制请求

错误1053,服务没有及时响应请求

在本地计算机无法启动windows installer服务,错误1053:服务没有及时响应启动或控制请求

在本地计算机无法启动windows backup服务,错误1053:服务没有及时响应启动或控制

错误 1053 服务没有及时响应启动或控制请求