J'essaie d'exécuter un fichier exe via C# .net en utilisant un processus. Il ne parvient pas à s'exécuter en renvoyant l'exception suivante:Démarrage d'un processus ne fonctionnant pas dans mon service Windows
System.InvalidOperationException: Aucun processus n'est associé à cet objet. à System.Diagnostics.Process.EnsureState (état Etat) à System.Diagnostics.Process.EnsureState (état de l'Etat) à System.Diagnostics.Process.GetProcessHandle (accès Int32, Boolean throwIfExited) à System.Diagnostics.Process. WaitForExit (millisecondes Int32) à System.Diagnostics.Process.WaitForExit() à VideoHandlingWinService.VideoHandlingService.ConvertVideoToFlv (String SavePath, String WithOutExt, String InputFile, String spath, Int32 VideoQueueId) à VideoHandlingWinService.VideoHandlingService.VideoHandling (String VideoName, Chaîne SavePath, Chaîne InputFile, Chaîne WithOutExt, Chaîne spath, Int32 VideoQueueId, Chaîne VideoDescription, Int32 RegisteredUserId, Int32 CategoryId, Chaîne VideoTitle) à VideoHandlingWinService.V ideoHandlingService.StartHandlingVideo() à VideoHandlingWinService.VideoHandlingService.OnStart (String [] args)
Mon code pour démarrer le processus est le suivant:
Toute personne s'il vous plaît me direProcess proc = new Process();
string spath = AppDomain.CurrentDomain.BaseDirectory.ToString();
try
{
proc.StartInfo.FileName = spath + "\\ffmpeg\\ffmpeg.exe";
proc.StartInfo.Arguments = FilArgs;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
string StdOutVideo = proc.StandardOutput.ReadToEnd();
string StdErrVideo = proc.StandardError.ReadToEnd();
}
catch { }
finally
{
proc.WaitForExit();
proc.Close();
}
comment faire dans le service de Windows. Aussi, je suis en cours d'exécution du service Windows comme compte local et j'espère qu'il n'y a pas de problème de permission pour l'exe.
Vous avez un bloc catch vide. Supprimez-le ou ajoutez-y un mot de passe afin de voir ce qui se passe réellement. –
Peut-être que cela signifie que votre capture vide a avalé une exception et que le processus n'a jamais été exécuté, expliquant le message d'erreur ... – wj32