J'utilise le code suivant pour exécuter un fichier de commandes à partir de C#. Le code suivant fait partie de mon service Windows. Ce code fonctionne parfaitement sous Windows XP mais lorsque je déploie mon service Windows sur le système d'exploitation Windows Server 2003, il renvoie le code de sortie 1 (échec). Est-ce que quelqu'un sait ce que je manque? Dois-je donner une autorisation spéciale au service Windows? Le service est installé en tant que service de système local.Impossible d'exécuter un fichier de commandes à partir d'un service Windows dans Windows Server 2003 OS
ProcessStartInfo psi = new ProcessStartInfo();
//specify the name and arguments to pass to the command prompt
psi.FileName = ConfigurationManager.AppSettings["BatchFilePath"];
psi.Arguments = fileName;
//Create new process and set the starting information
Process p = new Process();
p.StartInfo = psi;
//Set this so that you can tell when the process has completed
p.EnableRaisingEvents = true;
p.Start();
//wait until the process has completed
while (!p.HasExited)
{
System.Threading.Thread.Sleep(1000);
}
//check to see what the exit code was
if (p.ExitCode != 0)
{
logger.Write("Exit Code" + p.ExitCode);
}
Qu'est-ce que le fichier batch retourne en cas de succès? – Oded
En cas de succès, il renvoie 0 –
Sur Windows Server 2003, je peux exécuter le fichier de commandes directement à partir de l'invite de commande et cela fonctionne très bien. mais ça ne marche pas du service Windows. –