Web API не может запустить процесс exe C # - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть веб-API, размещенный в Windows Server 2012 r2. При запуске этот API запускает сторонний exe-файл, используя следующий фрагмент кода:

_service = new Process()
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = "file.exe",
                    Arguments = "-C config.xml",
                    WindowStyle = ProcessWindowStyle.Hidden,
                    LoadUserProfile = true,
                    WorkingDirectory = "C:\TestFolder",
                    CreateNoWindow = true
                }
            };

_service.Start()

Он отлично работает на моей локальной машине, но после того, как я развернул его на сервере, он зависает. Я попытался установить Load User Profile = true для пула приложений, но это не помогло. Также попытался установить пул приложений для 32-разрядных, но это тоже не сработало. Есть идеи?

1 Ответ

0 голосов
/ 05 ноября 2018

Я помещаю это здесь для дальнейшего использования. Оказывается, с тех пор, как я скачал exe-файл, система запрашивала «подтверждение» для запуска исполняемых файлов. Вот почему это было «зависание» для ответа пользователя.

Самое смешное, что это происходило только тогда, когда я пытался запустить процесс с использованием IIS. Я написал консольное приложение, чтобы протестировать его, и процесс начался просто отлично.

То, как я это исправил, я изменил для процесса WindowStyle на Normal, что вызвало диалог подтверждения. После того, как он появился, я снял флажок «Всегда запрашивать этот файл перед запуском», и это устранило проблему.

Интересно, есть ли способ "ввести" exe в систему, чтобы он даже не запрашивал подтверждения.

...