Как разрешить исключение «Доступ запрещен» при запуске Process.Start () с RedirectStandardOutput? - PullRequest
0 голосов
/ 06 апреля 2020

Мы создали надстройку для Excel, которая должна запускать исполняемый файл с помощью Process.Start (). Это необходимо, потому что исполняемый файл использует 32-битную библиотеку, но мы должны иметь возможность запускать надстройку в 64-битном Excel. Вывод перенаправляется для получения результата от вызова.

Это работало на сотнях установок в течение многих лет. Теперь при новой установке на конкретном c клиенте мы получаем Win32Exception: доступ запрещен для Process.Start ().

Вот код, о котором идет речь:

ProcessStartInfo processStartInfo = new ProcessStartInfo(path);
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;

Process process = new Process();
process.StartInfo = processStartInfo;
bool processStarted = process.Start();

Запуск исполняемого файла двойным щелчком по нему в проводнике или запуск из командной строки работает без ошибок. У пользователя есть разрешение на выполнение.

Я прочитал в { ссылка }, что это может быть вызвано RedirectStandardOuput и что у пользователя должно быть разрешение на создание канала, но я Не удалось найти какую-либо информацию о том, как это разрешение выдается или отнимается.

Спасибо за помощь.

...