2016-09-08 13 views
1

私はTopshelfを使用してWindowsサービスを開発しました。ローカルで正常に動作します。私がテストし、サービスを開始するために配備すると、それは私に次のエラーを与えている:テストサーバーは、Windowsサーバー上で2012年サービスを開始しようとすると、トップシェルフウィンドウサービスでエラー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秒待ってから、サービスが正常にインストールされたとみなされます。

スケジュールされたジョブは開始メソッドで開始されるため、その時間内には返されず、このエラーが発生します。

解像度は、開始で間接的に作業を開始し、その後に戻る - それを行うための専用のスレッドを開始するか、またはタイマーを使用して、多くのオプションがあります。

関連する問題