【问题标题】:C# Issues with Task Scheduler library [closed]任务计划程序库的 C# 问题[关闭]
【发布时间】:2011-06-14 15:59:20
【问题描述】:

为此,我已经走到了每一个地方,但无法弄清楚我做错了什么。我正在使用Microsoft.Win32.TaskScheduler 库。每次我单步执行代码时,我的任务总是为空。这是代码。

using (SqlConnection myConnection2 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString))
{
    myConnection2.Open();
    SqlCommand cmd2 = new SqlCommand("sp_GetProcessStart", myConnection2);
    cmd2.CommandType = CommandType.StoredProcedure;
    cmd2.Parameters.AddWithValue("@ID", txtTaskID.Text);

    SqlDataReader rdr = cmd2.ExecuteReader();

    if (rdr.HasRows)
    {
        while (rdr.Read())
        {
            string task = rdr["TaskName"].ToString();
            string newName = task.Remove(task.Length - 4, 4);

            using (TaskService ts = new TaskService())
            {
                Task t;
                t = ts.FindTask(newName);
                if (t != null)
                {
                    t.Run();
                }
            }
        }
    }
}

存储过程是SELECT ID FROM TABLE WHERE ID = @ID。该表有我所有的ScheduledTasks,每个都有一个ID。但是,该表将它们存储为“Task.job”,因此我将删除“.job”。无论我做什么,t 总是为空,我可以找出原因。

【问题讨论】:

  • 你尝试过进入 FindTask 吗?
  • 是的,FindTask 中的名称是正确的。

标签: c# scheduled-tasks


【解决方案1】:

不要删除 .job 扩展名。它只会找到带有 .job 扩展名的工作。

如果不成功,请尝试使用

OpenTask("jobname");

【讨论】:

  • 我试过手动添加任务名称,还是不行。
  • 您确定任务出现在任务管理器中并且没有被禁用或删除。
  • 对于 Windows Vista 及更高版本,所有操作系统都使用 Task Scheduler 2.0,并且它使用不同的库。
  • 这是 Server 2003。是的,它绝对没有被禁用并且存在。
【解决方案2】:

我让它工作了。来发现我没有拉入我的服务器变量,所以它不知道要运行什么任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2012-03-08
    • 2010-12-27
    • 2011-01-20
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多