Ich bin neu in Windows-Service C#. Ich habe eine Klassenbibliothek namens JobAdminLib
, die einen Klassenaufruf ArchiveAutomationAdministrator
hat. Diese Klasse hat eine Methode namens CountJobs()
. Ich habe einen Windows-Dienst erstellt, der diese bestimmte Methode im geplanten Zeitintervall ausführen würde. Aber es scheint nicht für mich zu funktionieren. Protokollberichte sagen, dass sie ausgeführt werden, aber die Funktion, die die Methode ausführen soll, funktioniert nicht.Windows Service-Methode funktioniert nicht
Ich habe beigefügten Code als Referenz
public class ArchiveAutomationAdministrator
{
JobRepository repository = new JobRepository();
public IEnumerable<LiveJobs> GetCurrentlyRetentionJobs(Func<LiveJobs, bool>
criteria = null)
{
return from job in repository.GetCurrentlyRetentionJobs() select job;
}
public void countJobs()
{
var count = from job in repository.GetCurrentlyRetentionJobs() select job;
int[] JobCount = new int[count.Count()];
for (int i = 1; i <= JobCount.Length; i++)
{
string jobnumber = repository.GetCurrentlyRetentionJobs().First().JobNumber;
JobAdministrator admin = new JobAdministrator(repository);
admin.ArchiveJob(jobnumber);
}
}
}
Im Anschluss an mein Fenster Service
public partial class Scheduler : ServiceBase
{
private Timer timer1 = null;
public Scheduler()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
timer1 = new Timer();
this.timer1.Interval = 5000;
this.timer1.Elapsed += new
System.Timers.ElapsedEventHandler(this.timer1_Tick);
timer1.Enabled = true;
Library.WriteErrorLog("test windows service started");
}
public void timer1_Tick(object sender, ElapsedEventArgs e)
{
this.task();
Library.WriteErrorLog("Job running successfully");
}
protected override void OnStop()
{
timer1.Enabled = false;
Library.WriteErrorLog("Service Stopped");
}
public void task()
{
Library.WriteErrorLog("Inside task");
ArchiveAutomationAdministrator admin = new ArchiveAutomationAdministrator();
admin.countJobs();
}
}
Wenn Sie Ihren Code einrücken würden, wäre das viel besser lesbar. –
Code einrücken! –
Total unlesbar, gibt jeder hier Augenkrebs. Bitte akzeptieren Sie die Bearbeitungsvorschläge. –