IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Serveur Discussion :

Exécution automatique d'un programme [WS 2008 R2]


Sujet :

Windows Serveur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 23
    Par défaut Exécution automatique d'un programme
    Bonjour, j’ai développé une application en C# sous Visual Studio 2013.
    J’ai eu ensuite pour objectif d’automatiser son exécution grâce au planificateur de tâches, de manière à répéter l’action tous les jours à une heure définie.
    Autre info, j’ai développé mon application sur un ordinateur Windows 7, depuis lequel
    j’ai testé le planificateur de tâche. L’exécution a très bien fonctionné.
    Toutefois, pour la mise en production, mon application est hébergée sur un serveur virtuel fonctionnant sous Windows Server 2008 R2.
    Quand je lance l’application en cliquant dessus, jusque-là tout est ok.
    Mais quand c’est le planificateur de tâche, ça ne fonctionne pas.
    Par ailleurs, il m’affiche une exception 0xE0434352.
    J’ai fait plusieurs recherches, mais je ne sais toujours pas ce que m’indique ce code, car aucune explication ne semble correspondre à mon problème.
    Enfin, je suis allé consulter l’observateur d’évènements Windows, et voici ce qu’il m’a affiché pour l’exécution de mon application : (Cf ci-dessous )

    Sauf que je n’ai absolument rien compris au message, et rien ne semble correspondre à mon problème.
    Merci d’avance pour votre aide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Description :
    Application : WpfApplication2.exe
    Version du Framework : v4.0.30319
    Description : le processus a été arrêté en raison d'une exception non gérée.
    Informations sur l'exception : System.IO.DirectoryNotFoundException
       à System.IO.__Error.WinIOError(Int32, System.String)
       à System.IO.FileStream.Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)
       à System.IO.FileStream..ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean, Boolean, Boolean)
       à System.IO.StreamReader..ctor(System.String, System.Text.Encoding, Boolean, Int32, Boolean)
       à System.IO.StreamReader..ctor(System.String, System.Text.Encoding)
       à System.IO.File.InternalReadAllLines(System.String, System.Text.Encoding)
       à System.IO.File.ReadAllLines(System.String, System.Text.Encoding)
       à WpfApplication2.MainWindow..ctor()
    
    Informations sur l'exception : System.Windows.Markup.XamlParseException
       à System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
       à System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
       à System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
       à System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext)
       à System.Windows.Application.LoadComponent(System.Uri, Boolean)
       à System.Windows.Application.DoStartup()
       à System.Windows.Application.<.ctor>b__1_0(System.Object)
       à System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
       à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
       à System.Windows.Threading.DispatcherOperation.InvokeImpl()
       à System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
       à System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
       à System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
       à System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
       à MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
       à System.Windows.Threading.DispatcherOperation.Invoke()
       à System.Windows.Threading.Dispatcher.ProcessQueue()
       à System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
       à MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
       à MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
       à System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
       à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
       à System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
       à MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
       à MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
       à System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
       à System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
       à System.Windows.Application.RunDispatcher(System.Object)
       à System.Windows.Application.RunInternal(System.Windows.Window)
       à System.Windows.Application.Run(System.Windows.Window)
       à System.Windows.Application.Run()
       à WpfApplication2.App.Main()

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 294
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 294
    Par défaut
    Citation Envoyé par mister-gaets Voir le message
    Sauf que je n’ai absolument rien compris au message, et rien ne semble correspondre à mon problème.
    Hé ben quoi, tu ne sais pas lire ?

    Tu me diras, avec toutes ces lignes soulignées (on se demande bien pourquoi -- le bouton "code" aurait été plus sympathique), c'est passablement imbuvable, cependant on y trouve ça :
    Citation Envoyé par mister-gaets Voir le message
    Description :
    Application : WpfApplication2.exe
    Version du Framework : v4.0.30319
    Description : le processus a été arrêté en raison d'une exception non gérée.
    Informations sur l'exception : System.IO.DirectoryNotFoundException
    à System.IO.__Error.WinIOError(Int32, System.String)
    Allez, cherche dans ton code, tu dois vouloir faire un accès à un dossier qui n'est pas là où tu le penses quand le programme est lancé par le planificateur, par opposition à un lancement par double-clic.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 23
    Par défaut
    Je suis nouveau sur Developpez.net, et je ne sais pas encore intégrer du code (avec la coloration syntaxique et tout).
    J'ai lu le message en entier. Ce n'est pas exactement comme ça que j'aurais dû dire, mais
    que je n'ai pas trouvé la réponse à mon problème.
    Quant au chemin d'accès configuré dans le planificateur, j'ai bien vérifié que c'était le bon.
    Et pourtant, l'exécution n'a pas fonctionné.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 294
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 294
    Par défaut
    Citation Envoyé par mister-gaets Voir le message
    Je suis nouveau sur Developpez.net, et je ne sais pas encore intégrer du code (avec la coloration syntaxique et tout).
    Et pourtant c'est dans les règles, qu'on accepte à l'inscription, qu'on reconnaît avoir lues mais en fait c'est pas vrai, et voilà...
    Sinon, tu as pourtant su souligner toutes les lignes sélectionnées (avec le dernier bouton de la 3e ligne) ; ben pour le "code" c'est pareil sauf que c'est le dernier bouton de la 2e ligne.
    Et y a l'infobulle qui le confirme.

    Citation Envoyé par mister-gaets Voir le message
    Quant au chemin d'accès configuré dans le planificateur, j'ai bien vérifié que c'était le bon.
    Et pourtant, l'exécution n'a pas fonctionné.
    Parce que, comme je le disais (je vais répéter exactement la même chose), l'environnement d'exécution de ton programme n'est pas le même (en terme d'emplacement) selon que tu double-cliques dessus ou que c'est le planificateur qui le lance.

    Donc tu reprends ton code, et là où il y a des accès à des dossiers/fichiers tu fais logguer le chemin. Tu verras bien...

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 23
    Par défaut
    Ok, je vois.
    Je ferai des tests dès que j'aurai à nouveau la main dessus.

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 259
    Par défaut
    probablement que tu tente d'accéder à un des dossiers contenu dans le profil de l'utilisateur.

    Quand tu double clique sur ton exe, celui-ci est lancé dans le contexte de ton utilisateur et accède donc à tes dossiers.
    Quand tu lance depuis le planificateur de tache, celui-ci est exécuté par défaut dans le contexte d'un utilisateur spécifique, de mémoire, je crois que c'est System. Ce compte là ne possède pas tous les droits, et ne possède pas non plus une config complète, notamment des dossiers, au niveau du profil utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution automatique d'un programme
    Par Aide_sas dans le forum R
    Réponses: 4
    Dernier message: 22/06/2015, 14h27
  2. Réponses: 0
    Dernier message: 19/07/2011, 15h44
  3. Réponses: 0
    Dernier message: 06/04/2010, 23h14
  4. Réponses: 6
    Dernier message: 01/12/2008, 10h02
  5. Exécution automatique d'un programme
    Par guy_antoine_mav dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 26/08/2008, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo