Windows服务不会触发计划任务

时间:2013-11-22 12:38:24

标签: c# service

我有一个包含日程安排的XML文件。我想创建一个服务,它将从XML文件读取日期和时间并在那时触发(调用我的应用程序)。

我尝试了很多,但服务并没有触发我的应用程序,所以我创建了一个控制台应用程序来复制我的服务,它完美地工作。

此外,在我的服务上,Start / Stop我正在创建一个似乎正在运行的日志文件,它似乎只是我的触发器。

protected override void OnStart(string[] args)
{
    TraceService("start service");
    timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
    timer.Interval = 60000;
    timer.Enabled = true;
}

protected override void OnStop()
{
    timer.Enabled = false;
    TraceService("stopping service");
}

private void OnElapsedTime(object source, ElapsedEventArgs e)
{
    TraceService(" Varun Another entry at " + DateTime.Now);
}

private void TraceService(string content)
{
    FileStream fs = new FileStream(@"d:\Varun-Pc start up.txt", FileMode.OpenOrCreate, FileAccess.Write);
    StreamWriter sw = new StreamWriter(fs);
    sw.BaseStream.Seek(0, SeekOrigin.End);
    sw.WriteLine(content);
    sw.Flush();
    sw.Close();
    connect();
    string xmldata = "";
    SqlDataAdapter da = new SqlDataAdapter("select * from Schedualer_Master", cn);
    DataSet mds = new DataSet();
    da.Fill(mds);
    for (int i = 0; i < mds.Tables[0].Rows.Count; i++)
    {
        xmldata = "";
        xmldata = mds.Tables[0].Rows[i]["XML_Data"].ToString();
        TaskScheduler.TriggerItem newItem = TaskScheduler.TriggerItem.FromXML(xmldata);
        newItem.Enabled = true; 
        _taskScheduler.AddTrigger(newItem); // set item into trigger
        _taskScheduler.Enabled = true;
    }
    object sender = new object();
    EventArgs e = new EventArgs();
    _taskScheduler._triggerTimer_Tick(sender, e);
}

这是我的触发功能

public void _triggerTimer_Tick(object sender, EventArgs e)
{
    _triggerTimer.Stop();
    foreach (TriggerItem item in TriggerItems)
    if (item.Enabled)
    {
        while (item.TriggerTime <= DateTime.Now)
        {
            item.RunCheck(DateTime.Now);
            System.Diagnostics.Process.Start("E:\\SqlBackup_Programs\\console-backup\\Backup_Console_App 22July Latest\\Backup_Console_App\\Backup_Console_App\\bin\\Debug\\Backup_Console_App");
        }
    }
    _triggerTimer.Start();
}

0 个答案:

没有答案