net 5 web api 部署到iis 不能使用process 调用 bat 、cmd 、powershell 取回结果么?
net 5 web api 部署到iis 不能使用process 调用 bat 、cmd 、powershell 取回结果么?
控制台能获取到结果,web api 去调用执行,获取不到结果。
iis 程序池采用默认配置
代码如下:
//执行获取结果 var output1 = Cmd("powershell", "Get-Counter -Counter '\\Processor(_Total)\\% Processor Time' -MaxSamples 1");
public static string Cmd(string fileName, string args) { string output = string.Empty; var info = new ProcessStartInfo(); info.FileName = fileName; info.Arguments = args; info.RedirectStandardOutput = true; using (var process = Process.Start(info)) { process.WaitForExit(); output = process.StandardOutput.ReadToEnd(); } return output; }
回答
你把IIS site对应的APP Pool使用权限较高的LocalSystem启动试试
多半是因为PowerShell没权限返回了错误,而错误会定向到错误流中去了。
THE END
二维码