C # Process StandardOutput.ReadToEnd возвращает пустую строку на сервере - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь прочитать вывод из исполняемого файла. Проблема в том, что он работает на моем локальном IIS, но при развертывании на сервере - нет.

            using (var proc = new Process())
            {
                proc.StartInfo = new ProcessStartInfo();
                proc.StartInfo.FileName = exePath;
                proc.StartInfo.Arguments = countryArg + topResultAgr + imagePath;
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.CreateNoWindow = true;

                var didProcStart = proc.Start();
                var results = new List<LPRResponse>();
                var readResult = false;
                var debugResult = "LICENSEPLATEREQ - ";
                debugResult += "\r\n#Didprocessstart: " + didProcStart;

                string resultsRaw = proc.StandardOutput.ReadToEnd();
                proc.WaitForExit();

                debugResult += "\r\n#rawresult: " + resultsRaw;
                _logger.Info(debugResult);

                return results;
            }

Таким образом, когда этот код выполняется локально, proc.StandardOutput.ReadToEnd() возвращает результат из командной строки, но при запуске на сервере он возвращает пустой.

Вещи, которые я пытался проверить:

  • У меня есть правильный путь .exe
  • У меня есть аргумент правильно
  • exe начался

Я не уверен, что еще я делаю неправильно.

...