2011-06-14 2 views
3

나는이 모든 작업을 수행하고 내가 잘못하고있는 작업을 파악할 수 없습니다. Microsoft.Win32.TaskScheduler 라이브러리를 사용하고 있습니다. 코드를 단계별로 실행할 때마다 항상 내 작업이 null입니다. 여기에 코드가 있습니다.C# 작업 스케줄러 라이브러리 관련 문제

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입니다. 표에는 ID가 각각 할당 된 내 ScheduledTasks이 모두 있습니다. 그러나 테이블에는 "Task.job"으로 저장되므로 ".job"이 제거됩니다. 내가 무엇을 하든지, t는 항상 null이고 나는 이유를 알아낼 수 있습니다.

+0

FindTask를 실행 해 보셨습니까? – Xaisoft

+0

예, FindTask에서 이름이 정확합니다. – Matt

답변

0

를 사용하여 시도를 작동하지 않으면

나는 작업을 얻었다. 내 서버 변수를 가져 오지 않았 음을 알아 내서 실행해야 할 작업을 알지 못했습니다.

0

.job 확장을 제거하지 마십시오. .job 확장으로 만 직장을 찾을 수 있습니다. 그

OpenTask("jobname"); 
+0

작업 이름을 수동으로 추가하려고 시도했지만 여전히 작동하지 않습니다. – Matt

+0

작업이 TaskManager에 나타나고 비활성화되거나 삭제되지 않았습니까? –

+0

(Windows Vista 이상) 모든 운영 체제는 Task Scheduler 2.0을 사용하며 다른 라이브러리를 사용합니다. –