我想调用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配置文件”,而且我不确定这是否与他的问题相同?有帮助吗?
答案 0 :(得分:1)
我运行了示例,并且在调用Close()之后,ExitCode不再有效。因此无效的操作。
答案 1 :(得分:0)
我认为,您的iis用户没有特权。可能是您要检查以下链接:Foo.cmd won't output lines in process (on website)
答案 2 :(得分:-1)