2017-08-11 63 views
0

我想創建一個在每天早上4點自動運行的服務,並且該方法會在被調用時自動刪除一些文件,我已經編寫了代碼,但是我在服務中調用的方法沒有得到執行。下面我附上我的代碼,請有人建議我一個解決方案。如何在Windows服務(c#)中調用我的方法?

public partial class Scheduler : ServiceBase 
{ 
    System.Timers.Timer _timer; 
    public Scheduler() 
    { 
     InitializeComponent(); 
    } 
    protected override void OnStart(string[] args) 
    { 
     try 
     { 
      _timer = new System.Timers.Timer(); 
      _timer.Interval = 1 * 60 * 1000;//Every one minute 
      _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); 
      _timer.Start(); 
     } 
     catch (Exception ex) 
     { 
      Library.WriteErrorLog(ex); 
     } 
    } 
    public void timer_Elapsed(object sender, ElapsedEventArgs e) 
    { 
     Library.WriteErrorLog("Timer elapsed");  
     this.ExtractDataFromSharePoint();  
    }  
    public void ExtractDataFromSharePoint() 
    { 
     Library.WriteErrorLog("inside task");  
     ArchiveAdministration admin = new ArchiveAdministration(); 
     admin.ArchiveAuto(); 
     Library.WriteErrorLog("job completed"); 
     _timer.Stop(); 
    } 
} 

而且我的日誌文件中只有以下的輸出語句:

定時器消逝
內任務

我沒有收到「任務結束」,這我已經包含聲明。

+2

我把一個try ... catch通過在ExtractDataFromSharePoint()方法中添加try catch來獲取下面的日誌詳細信息。通過在ExtractDataFromSharePoint()中添加try catch來查看發生了什麼 – Ben

回答

1

由於您沒有進入Job完成的行,因此添加tr在ExtractDataFromSharePoint方法Y catch子句:

public void ExtractDataFromSharePoint() 
{ 
    try 
    { 
    Library.WriteErrorLog("inside task");  
    ArchiveAdministration admin = new ArchiveAdministration(); 
    admin.ArchiveAuto(); 
    Library.WriteErrorLog("job completed"); 
    _timer.Stop(); 
    } 
    catch(Exception ex) 
    { 
    Library.WriteErrorLog(ex.Message); //or try to log the stacktrace also  
    }  
} 

捕獲異常,如果你沒能解決它,將其粘貼在這裏可以幫你

+0

嗨@alaa_sayegh謝謝,但我duno如何糾正這... 11/08/2017 12:04:07:計時器已過去 11/08/2017 12:04:07:內部任務 11/08/2017 12:04:17 :無法打開登錄請求的數據庫「數據處理套件」。登錄失敗。 用戶'NT AUTHORITY \ SYSTEM'登錄失敗。 –

+0

好的。授予用戶NT AUTHORITY \ SYSTEM訪問數據庫的權限。看到這個:https://stackoverflow.com/questions/2251839/login-failed-for-user-nt-authority-network-service –

+0

@ShaktiS它爲你工作? –

相關問題