Ich erstelle einen anderen Windows-Dienst und mein Timer tickt nicht und ich habe keine Ahnung warum! Ich benutze system.timers.timer wie ich in früheren Diensten und es funktioniert nicht. Ich habe versucht, es anzufügen, aber es scheint nichts zu tun.System.Timers.Timer timer1_Elapsed feuert nicht! Hilfe!
Mein Code:
namespace ExpiryNotifier
{
public partial class ExpiryNotifier : ServiceBase
{
public ExpiryNotifier()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("ExpiryNotifier"))
{
System.Diagnostics.EventLog.CreateEventSource("ExpiryNotifier", "ExpiryNotifier");
}
eventLog1.Source = "ExpiryNotifier";
eventLog1.Log = "ExpiryNotifier";
}
private Timer timer1 = new Timer();
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("Service Started");
timer1.Elapsed += timer1_Elapsed;
timer1.Interval = 10000;
timer1.Enabled = true;
}
protected override void OnStop()
{
eventLog1.WriteEntry("Service Stopped");
timer1.Enabled = false;
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
eventLog1.WriteEntry("timer tick");
timer1.Stop();
EmailerService.EmailerService service = new EmailerService.EmailerService();
DataSet expiringQualifications = service.GetDetailsOfExpiringQualifications();
if(expiringQualifications.Tables[0].Rows.Count>0)
{
foreach(DataRow rw in expiringQualifications.Tables[0].Rows)
{
if (!string.IsNullOrEmpty(rw["EmailAddress"].ToString()))
{
if (rw["QualAwardDescription"] != null)
{
service.SendQualExpiryEmail(rw["EmailAddress"].ToString(), rw["firstName"].ToString(),
rw["QualAwardDescription"].ToString());
}
}
}
}
timer1.Start();
}
}
}
Kann jemand das Problem?
Vielen Dank im Voraus!
Bex
Können Sie den Eintrag "Service Started" sehen? –