Я пытаюсь выполнить исполняемый файл через c # .net, используя процесс. Не удается выполнить, возвращая следующее исключение:
System.InvalidOperationException: ни один процесс не связан с этим объектом.
в System.Diagnostics.Process.EnsureState (состояние штата)
в System.Diagnostics.Process.EnsureState (состояние штата)
в System.Diagnostics.Process.GetProcessHandle (доступ Int32, логический throwIfExited)
в System.Diagnostics.Process.WaitForExit (Int32 миллисекунды)
в System.Diagnostics.Process.WaitForExit ()
at VideoHandlingWinService.VideoHandlingService.ConvertVideoToFlv (String SavePath, String WithOutExt, String InputFile, String spath, Int32 VideoQueueId)
at VideoHandlingWinService.VideoHandlingService.VideoHandling (Строка VideoName, Строка SavePath, Строка InputFile, Строка WithOutExt, Строка spath, Int32 VideoQueueId, Строка VideoDescription, Int32 RegisteredUserId, Int32 CategoryId, Строка VideoTitle)
на VideoHandlingWinService.VideoHandlingService.StartHandlingVideo ()
at VideoHandlingWinService.VideoHandlingService.OnStart (String [] args)
Мой код для запуска процесса выглядит следующим образом:
Process 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();
}
Любой, пожалуйста, скажите мне, как сделать это в службе Windows. Кроме того, я запускаю службу windows в качестве локальной учетной записи и надеюсь, что для exe нет проблем с разрешениями.