2016-09-08 5 views
1

Topshelf를 사용하여 Windows 서비스를 개발했습니다. 그것은 로컬로 잘 작동합니다. 내가 테스트하고 서비스를 시작하려고 배포하면, 그것은 나에게 다음과 같은 오류주고있다 : 테스트 서버에서 Windows Server 2012서비스를 시작하려고 할 때 Topshelf 창 서비스가 오류 1053을 표시 함

에서 실행되는

Error 1053: The service did not respond to the start or control request in a timely fashion. 

것은이 내 서비스 시작 및 중지 방법입니다 :

public void Start() 
{ 
    _logProvider.Info("Service started."); 

    StartScheduledJobs(); 
} 

public void Stop() 
{ 
    _scheduler.Shutdown(true); 

    _logProvider.Info("Service stopped."); 
} 

private void StartScheduledJobs() 
{ 
    try 
    { 
     _scheduler.Start(); 

     ScheduleDeleteJob(); 
    } 
    catch (Exception ex) 
    { 
     _logProvider.Error("", ex); 
    } 
} 

해결책이있는 이유는 무엇이겠습니까?

감사

답변

0

문제는 당신이 Start() 방법에서 서비스의 일을 시작하는 것입니다.

이것은 잘 동작하지만 서비스를 설치할 때 서비스 제어 관리자는 시작을 호출하고 30 초 후에 반환합니다. 서비스가 있으면 서비스가 성공적으로 설치된 것으로 간주됩니다.

예약 된 작업을 시작 했으므로 Start 메서드에서 해당 시간 내에 반환되지 않으며이 오류가 발생합니다.

해상도는 시작에서 간접적으로 작업을 시작한 다음 돌아가려면 - 전용 스레드를 시작하여 타이머를 사용하거나 많은 옵션이 있습니다.