Я получаю код выхода «1», когда запускаю процесс на IIS - PullRequest
0 голосов
/ 29 октября 2018

Я хочу вызвать .exe на моем компьютере с Windows. Я публикую сайт в папке внутри «C: \ inetpub \ wwwroot» и могу вызывать API извне. Проблема в том, что когда я запускаю код из VS на IIS Express, код завершения процесса равен 0, и исполняемый файл успешно выполняется, но когда я вызываю Результат действия извне, и он запускается в IIS, код состояния равен 1, и существует очевидно, проблема в вызове этого процесса: вот мой код:

public async Task<ActionResult> url2img(string url)
    {
        Process proc = new Process();
        proc.StartInfo.FileName = @"C:\Program Files\wkhtmltopdf\bin\wkhtmltoimage.exe";
        proc.StartInfo.Arguments = $"--encoding utf-8 \"{url}\" {FilePath}";
        proc.Start();
        proc.WaitForExit();

        object oJSON = new { procStatusCode = proc.ExitCode };

        proc.Close();

        return Json(oJSON, JsonRequestBehavior.AllowGet);
    }

Я нашел эту ветку и прочитал предложенный ответ от OP, но я не могу найти «загрузить профиль Windows» в моем IIS, а также я не уверен, является ли это той же проблемой, что и его? Любая помощь?

enter image description here

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Мне нужно было установить для параметра DefaultAppPool значение LocalSystem

enter image description here

0 голосов
/ 30 октября 2018

Я думаю, ваш пользователь iis не имеет привилегий. возможно, вы захотите изучить эту ссылку: Foo.cmd не будет выводить строки в процессе (на веб-сайте)

0 голосов
/ 29 октября 2018

Я запустил пример, и ExitCode больше не действителен после вызова Close (). Отсюда недопустимая операция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...