Bonjour,

J'ai un programme en C# qui tourne comme service et qui effectue des opérations de routine sur un automate à distance via le réseau, ça c'est ok.
Il arrive que le programme se bloque (il utilise une bibliothèque tierce, et les réseaux industriels sont pas toujours au top), j'ai bien entendu géré les exceptions autant que possible, mais il me faudrait une sécurité en plus.
Donc ce que je fais, à chaque fois que une itération est terminée et que je reviens dans ma boucle principale, j'écris l'heure et la date dans un ficheir (toujours le même, toujours écrasé, donc 1 ligne).

En parallèle, j'ai développé un petit watchdog aussi en C# qui va lire cette date heure, et si c'est la même depuis une certaine durée (paramétrable via app.config), je lui demande d'exécuter un .bat séparé, qui fait quelque chose de très simple:
net stop "serviceAutomate"
net start "serviceAutomate"

Cela permet de relancer donc mon service avec l'automate, et tout repart normalement (je pense que cela vient de la bibliothèque de la communication, qui en faisant un restart se remet d'aplomb).

Quand j'exécute mon .bat à la main en mode admin après double clique, cela fonctionne.
Quand je fais tourner mon programme pour l'automate depuis mon IDE, le fichier est bien créé et écrasé régulièrement.

Par contre, quand je lance mon watchdog depuis l'IDE, je vois bien furtivement la fenêtre de la console (je l'ai pas masqué pour l'instant) s'ouvrir suite au .bat, mais rien ne se passe.
De la même façon, quand je fais tourner mon programme pour l'automate en service, il ne créé pas le fichier avec l'heure et la date.

Je pense que c'est un problème de droit, mais je n'ai aucune idée comment je peux résoudre cela...
Mon programme automate communique avec SQL Server sans soucis, pas plus qu'avec l'automate, par contre pour générer un fichier .txt basique, rien ne se passe...

Comment puis-je paramétrer cela?
Merci.