通过 LocalService 用户从 MVC 创建计划任务有时会失败
Creating Scheduled Task from MVC sometimes fails via LocalService user
我正在使用 c# TaskService 命名空间从 MVC 应用创建一个 Windows 计划任务。
如果 IIS AppPool 设置为 运行 作为 LocalService 用户,它通常工作正常,但有时我们会发现服务器无法创建计划任务。如果我们将 AppPool 用户更改为本地(管理员)用户,那么它就可以工作了。但我更愿意 运行 某种系统用户下的 AppPool。
我还没有任何具体的错误消息,因为我无法自己复制错误。
是否有任何rigths/settings/permissions会导致LocalService用户无法创建计划任务?
(PS: LocalSystem 和 IIS AppPool 用户也不起作用)
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "My Task";
var trigger = new RegistrationTrigger() { Delay = TimeSpan.FromSeconds(1) };
trigger.Repetition.Interval = new TimeSpan(1, 0, 0));
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction("C:\Folder\program.exe"));
td.Settings.AllowDemandStart = task.AllowDemandStart;
td.Settings.Hidden = task.Hidden;
ts.RootFolder.RegisterTaskDefinition("My Task", td); //Assumption is that error happens on this line
}
我不能将其作为重复项关闭,因为它有赏金;但作为参考,这已在此处得到回答
Permissions required to create/modify tasks in Windows Task Scheduler
"The account needs to have read/write permissions to the "Tasks”目录。路径如下:
%SystemRoot%\system32\Tasks\
但是,还有一个问题是 Windows Server 2003 不喜欢我将本地系统指定为任务 运行 所在的帐户。它似乎不喜欢我传递一个空密码,这是您指定本地系统的方式。我通过在服务器上为 运行 下的任务创建一个本地帐户并指定这个新帐户来解决这个问题。"
我正在使用 c# TaskService 命名空间从 MVC 应用创建一个 Windows 计划任务。
如果 IIS AppPool 设置为 运行 作为 LocalService 用户,它通常工作正常,但有时我们会发现服务器无法创建计划任务。如果我们将 AppPool 用户更改为本地(管理员)用户,那么它就可以工作了。但我更愿意 运行 某种系统用户下的 AppPool。
我还没有任何具体的错误消息,因为我无法自己复制错误。
是否有任何rigths/settings/permissions会导致LocalService用户无法创建计划任务?
(PS: LocalSystem 和 IIS AppPool 用户也不起作用)
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "My Task";
var trigger = new RegistrationTrigger() { Delay = TimeSpan.FromSeconds(1) };
trigger.Repetition.Interval = new TimeSpan(1, 0, 0));
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction("C:\Folder\program.exe"));
td.Settings.AllowDemandStart = task.AllowDemandStart;
td.Settings.Hidden = task.Hidden;
ts.RootFolder.RegisterTaskDefinition("My Task", td); //Assumption is that error happens on this line
}
我不能将其作为重复项关闭,因为它有赏金;但作为参考,这已在此处得到回答
Permissions required to create/modify tasks in Windows Task Scheduler
"The account needs to have read/write permissions to the "Tasks”目录。路径如下: %SystemRoot%\system32\Tasks\
但是,还有一个问题是 Windows Server 2003 不喜欢我将本地系统指定为任务 运行 所在的帐户。它似乎不喜欢我传递一个空密码,这是您指定本地系统的方式。我通过在服务器上为 运行 下的任务创建一个本地帐户并指定这个新帐户来解决这个问题。"