2017-08-31 1 views
1

J'essaie d'utiliser ce paquet: http://taskscheduler.codeplex.com/ pour exécuter une tâche généralisée à la connexion, pour toujours, toutes les 5 minutes. Malheureusement, il me donne un message d'erreur Accès refusé si j'ai fait la même chose avec d'autres wrappers? Toute aide ici?Tâches Windows planifiées avec programmation C#

Message d'erreur:

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

code:

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 
} 
+0

Postez le * full * exceptino message, y compris sa pile d'appels. Très probablement, le compte du pool d'applications (par défaut, un compte restreint) n'a pas l'autorisation d'accéder au service du planificateur de tâches ou de le modifier. –

Répondre

0

assurez-vous que IIS a enought droits sur le dossier que vous voulez écrire ou usurper l'identité d'un utilisateur qui a accès

+0

Il n'y a pas d'accès au fichier dans le code OP. Il est beaucoup plus probable que le compte du pool d'applications n'ait pas l'autorisation d'accéder au planificateur de tâches. –

+0

Cela pourrait être le cas, donc utilisez l'emprunt d'identité alors. – Danny