使用C#编程的计划Windows任务

使用C#编程的计划Windows任务,c#,.net,windows,windows-10,C#,.net,Windows,Windows 10,我正在尝试使用这个软件包:在登录时永远运行一个计划任务,每5分钟一次。不幸的是,当我对其他包装器做了同样的操作时,它会给我一个访问被拒绝的错误消息吗?有人帮忙吗 错误消息: System.UnauthorizedAccessException: 'Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))' 代码: 确保IIS对您要写入或模拟有访问权的用户的文件夹拥有足够的权限确保IIS对您要写入或模拟有访问权

我正在尝试使用这个软件包:在登录时永远运行一个计划任务,每5分钟一次。不幸的是,当我对其他包装器做了同样的操作时,它会给我一个访问被拒绝的错误消息吗?有人帮忙吗

错误消息:

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


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

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

发布完整的ExceptionNo消息,包括其调用堆栈。最可能的情况是,应用程序池的帐户(默认情况下为受限帐户)无权访问或修改任务计划程序服务发布完整的ExceptionNo消息,包括其调用堆栈。最可能的情况是,应用程序池的帐户(默认情况下为受限帐户)没有访问或修改任务计划程序服务的权限OP的代码中没有文件访问权限。更可能的情况是,应用程序池帐户没有访问任务计划的权限,可能是这样,所以请使用模拟。OP的代码中没有文件访问权限。更有可能的情况是,应用程序池帐户没有访问任务调度程序的权限,因此请使用模拟。
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
}