【问题标题】:Scheduled Windows Tasks with C# programming使用 C# 编程的计划 Windows 任务
【发布时间】:2017-08-31 07:48:25
【问题描述】:

我正在尝试使用这个包:http://taskscheduler.codeplex.com/ 在登录时运行一个计划任务,永远,每 5 分钟一次。不幸的是,当我对其他包装器做了同样的事情时,它给了我一个 Access is denied 错误消息?这里有什么帮助吗?

错误信息:

System.UnauthorizedAccessException: 'Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))'

代码:

using (TaskService ts = new TaskService())
{
    TaskDefinition td = TaskService.Instance.NewTask();

    td.RegistrationInfo.Description = "Handles background work for the XRML application.";

    Trigger wt = Trigger.CreateTrigger(TaskTriggerType.Logon);

    wt.Repetition.Duration = TimeSpan.FromDays(2000); // last forever
    wt.Repetition.Interval = TimeSpan.FromMinutes(5); // every 5 minutes
    td.Triggers.Add(wt);

    td.Actions.Add(@"C:\Users\User\Desktop\hello2.txt", "c:\\test.log");

    TaskService.Instance.RootFolder.RegisterTaskDefinition("XRML Helper", td); // just to test
}

【问题讨论】:

  • 发布 full exceptino 消息,包括其调用堆栈。很可能,应用程序池的帐户(默认为受限帐户)没有访问或修改任务调度程序服务的权限

标签: c# .net windows windows-10


【解决方案1】:

确保 IIS 对您要写入的文件夹具有足够的权限或模拟具有访问权限的用户

【讨论】:

  • OP 的代码中没有文件访问权限。应用程序池帐户很可能没有访问任务计划程序的权限
  • 可能是这样,那就用假冒吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 2012-03-26
相关资源
最近更新 更多