如何在Windows服务(c#)中调用我的方法?

问题描述:

我想创建一个在每天早上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

由于您没有进入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它为你工作? –