Запустить скрипт Python скрипт на IIS - не работает - PullRequest
0 голосов
/ 30 марта 2020

Project Scope Запустите Python .py скрипт очистки экрана на сервере IIS, который открывает окно Google Chrome (с использованием chromedriver.exe). Сценарий .py открывает Chrome для определенного веб-сайта, вводит аргументы и фиксирует окончательный результат. Результат отображается с помощью команды «Печать». Я могу запустить следующий код при вызове WebAPI и протестировать его в веб-приложении. Веб-приложение вызывает функцию веб-API, которая, в свою очередь, выполняет сценарий .py. На моем локальном компьютере все работает нормально.

На сервере Я могу вручную выполнить скрипт .py на сервере с помощью командной строки. Он работает так, как задумано, и выдает результаты в командной строке.

Проблема Когда я публикую sh этот веб-API на сервере (IIS) и пробую тестовое веб-приложение, он делает не работа. Код проходит весь путь до вызова «Конец функции» внизу без каких-либо ошибок.

Я попытался установить AppPool для LocalSystem, Network Service, пользовательский (с разрешением на выполнение для всех папок), но ничто не запускает процесс.

try
            {
                var script = @"C:\Installs\ProdCode\ScreenScraping\trancounttest.py";
                var process = new Process
                {
                    StartInfo = new ProcessStartInfo
                    {
                        FileName = @"C:\Installs\Python377\python.exe",
                        Arguments = $"\"{script}\"",
                        UseShellExecute = false,
                        RedirectStandardOutput = true,
                        RedirectStandardError = true,
                        WindowStyle = ProcessWindowStyle.Hidden,
                        CreateNoWindow = true
                    }
                };

                process.Start();
                var line = "";

                while (!process.StandardOutput.EndOfStream)
                {
                    line = process.StandardOutput.ReadLine();
                    return line;
                }


                process.WaitForExit();
                return "End of Function";
            }
            catch (Exception e)
            {
                return e.Message;
            }

Любая помощь будет принята с благодарностью

...