服务错误 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:服务没有及时响应启动或控制请求
在本地计算机无法启动windows installer服务,错误1053:服务没有及时响应启动或控制请求