Я могу найти много тем, обсуждающих Process.Start, но ни одного, который звучит как мой. Код, приведенный ниже, работает в течение многих лет на Windows Server 2003 & 2008. Теперь я пытаюсь установить одно и то же приложение в 2012 году, но, хотя «My.exe» запускается, сам Process.Start зависает, поэтому «Started» никогда не регистрируется. Может ли кто-нибудь сказать, в чем проблема?Process.Start зависает на сервере 2012
Большое спасибо заранее,
Майкл
ProcessStartInfo psi = new ProcessStartInfo("C:\\My.exe");
psi.UseShellExecute = false;
psi.LoadUserProfile = false;
psi.WindowStyle = ProcessWindowStyle.Normal;
psi.ErrorDialog = false;
if (Environment.OSVersion.Version.Major >= 6) psi.Verb = "runas";
psi.Arguments = "\"MyArgs\"";
psi.RedirectStandardError = true;
psi.RedirectStandardOutput = true;
_logger.Info("Starting");
_process = Process.Start(psi);
_logger.Info("Started");
К сожалению, это была опечатка. – user3306282
Ссылка, если я правильно ее понимаю, является проблемой, когда WaitForExit зависает. Я не использую этот метод и не могу его использовать, поскольку сначала мне нужен объект Process, который я не получаю, поскольку Process.Start никогда не возвращается. – user3306282
Я бросил ваш образец в приложение WinForm и запустил его под VMware Server 2012 - заменил My.exe на cmd.exe и удалил аргумент. Код работает как администратор, так и обычный пользователь - может быть, проблема с программой «My.exe»? – jman