我不知道是否有人可以帮助解决这个问题,但是当我运行我的应用程序时,我收到一个错误(对象引用没有设置为对象的实例)。这是代码:
using (SqlConnection myConnection2 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString))
{
myConnection2.Open();
SqlCommand cmd2 = new SqlCommand("SELECT ID, TaskName, Permission from ScheduledTasks s, Roles r WHERE s.ID= " + txtTaskID.Text, myConnection2);
SqlDataReader rdr;
rdr = cmd2.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
string task = rdr["TaskName"].ToString();
Trigger tg = new RunOnceTrigger(DateTime.Now);
ScheduledTasks st = new ScheduledTasks();
Task t = st.OpenTask(task);
t.Triggers.Add(tg);
t.Save();
}
}
}
行t.Triggers.Add(tg)中的错误。我已经完成了代码,任务是存储正确的任务名称。它只是不会启动任务。
答案 0 :(得分:0)
我的直接猜测是t.Triggers
目前等于null
。
在尝试向其添加任何内容之前,您可能需要在t.Triggers
中实例化触发器集合。
答案 1 :(得分:0)
您似乎以作者演示的方式使用它。你遇到的错误是什么?请发布异常消息。
作者常见问题解答:
为什么我会获得访问权限异常?
这个问题通常会出现 想要使用任务的客户 ASP.NET代码中的调度程序。 通常,这样的代码运行在 ASPNET账号相当低 特权,无法使用任务 调度。对此的解决方案是 设置你的代码在另一个,更多 特权帐户。这就是所谓的 模仿,你可以设置它 在你的web.config文件中。
任务计划程序并不需要 客户端以管理方式运行 特权,但如果不是,就会有 对可以做什么的限制。一世 没有发现这些 充分证明。但是,直到 最近似乎是这样 非管理员可以看到和 操纵他们创建的任务,但是 没有其他人。在Windows XP SP2中,有 似乎是一些概括。在 资源管理器,有一个新的安全性 “任务属性”对话框中的选项卡。 还有一点点 文档解释该文件 将管理该任务的权限 其他用户可以用它们做什么。 读=看它,读/执行=运行 任务,写=修改任务。
我也想知道,你还没有提供任务应该做的任何细节。正如应该发生的事情一样,某些程序需要在任务运行时执行。我假设您在发布之前删除了这些行。如果没有,那么这个库可能不允许创建任务,而没有关于在预定时间执行哪个应用程序的信息。
我使用这个特殊的库:http://taskscheduler.codeplex.com/ ...它积极开发,最新版本于5月上个月发布。它会根据操作系统自动使用正确版本的任务计划程序。这只是个人偏好......