Windows services 间歇性错误-服务未及时响应启动或控制请求

Windows services 间歇性错误-服务未及时响应启动或控制请求,windows-services,octopus-deploy,Windows Services,Octopus Deploy,我使用八达通部署了一个windows服务。部署在90%的时间内工作正常。如果我一大早就部署了服务,我会发现服务没有及时响应启动或控制请求。错误如果我再次从Octopus运行相同的部署,它会起作用 我已经尝试了在网上找到的以下建议 确保服务已停止更改Octopus的powershell脚本。这将等到服务停止后再重新配置它。我们怀疑服务没有正确关闭 #ensure that the service was stopped. Stop-Service $ServiceName do { Wr

我使用八达通部署了一个windows服务。部署在90%的时间内工作正常。如果我一大早就部署了服务,我会发现服务没有及时响应启动或控制请求。错误如果我再次从Octopus运行相同的部署,它会起作用

我已经尝试了在网上找到的以下建议

确保服务已停止更改Octopus的powershell脚本。这将等到服务停止后再重新配置它。我们怀疑服务没有正确关闭

#ensure that the service was stopped.
Stop-Service $ServiceName
do {
     Write-Host "Service not stopped yet...pausing execution for 200 ms"
     Start-Sleep -Milliseconds 200
   } until ((Get-Service $ServiceName).status -eq 'Stopped')


  & "sc.exe" config $service.Name binPath= $fullPath start= auto |       
增加服务的onstart方法中的超时

protected override void OnStart(string[] args)
{
    _eventLog.WriteEntry(_source, "Starting service...", EventLogEntryType.Information);

    //adding this to ensure there is enough time to start the service.
    this.RequestAdditionalTime(60000);
    new TaskFactory().StartNew(() => Start(_cancellationToken.Token), TaskCreationOptions.LongRunning);
    IsComplete = true;
}
正如我提到的,如果在错误发生后部署服务,那么它就可以工作。只有在服务运行了相当长的一段时间(如至少2小时)后才会发生错误。如果我每10分钟背靠背部署一次,错误本身不会出现


请帮助

好的,所以我设法找到了我的问题。我们的服务依赖于WinHTTP Web代理自动发现服务,该服务在一定的空闲时间后由于某种原因停止。因此,当我们部署服务时,这个服务没有运行,然后应该抛出一个异常。我们没有看到异常,因为它被try-catch吞没了

我添加了这个服务作为我们服务的依赖项,现在它每次都在工作。希望这对将来的人有所帮助