在IIS上运行进程时,出现退出代码“ 1”

时间:2018-10-29 14:48:27

标签: c# .net asp.net-mvc iis process

我想调用Windows计算机上的.exe。我将该站点发布到“ C:\ inetpub \ wwwroot”内的文件夹中,并且可以从外部调用该API。问题是,当我在IIS Express上从VS运行代码时,进程的退出代码为0,并且exe成功执行,但是当我从外部调用操作结果并在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);
    }

我找到了this thread,并且阅读了OP提出的建议答案,但是我无法在IIS中找到“加载Windows配置文件”,而且我不确定这是否与他的问题相同?有帮助吗?

enter image description here

3 个答案:

答案 0 :(得分:1)

我运行了示例,并且在调用Close()之后,ExitCode不再有效。因此无效的操作。

答案 1 :(得分:0)

我认为,您的iis用户没有特权。可能是您要检查以下链接:Foo.cmd won't output lines in process (on website)

答案 2 :(得分:-1)

我必须将DefaultAppPool的标识设置为LocalSystem

enter image description here