【发布时间】:2023-11-23 00:42:01
【问题描述】:
我从一个 asp.net 核心应用程序运行一个进程:
bool createShell = true;
//generate output pdf
using var pdfGeneratorProcess = new System.Diagnostics.Process
{
StartInfo = new ProcessStartInfo
{
UseShellExecute = createShell,
CreateNoWindow = createShell,
RedirectStandardError = !createShell,
RedirectStandardOutput = !createShell,
WorkingDirectory = dir,
FileName = "java",
Arguments = $"-cp \"fop-2.0.jar;lib/*\"; FOPLocalPDFGenerator {rendererFile} {inputFile} {outputFile}"
}
};
_logger.LogInformation("{CMD}", $"{pdfGeneratorProcess.StartInfo.FileName} {pdfGeneratorProcess.StartInfo.Arguments}");
pdfGeneratorProcess.Start();
当 createShell 为真时,进程写入一些 PDF 文件并退出。当我将其设置为 false 时,它会以相同的 StandardOutput 和 StandardError 运行,但从未完成并且 PDF 文件为空。
为什么看不到控制台窗口时进程挂起?
【问题讨论】:
-
CreateNoWindow = !createShell?
标签: c# asp.net-core .net-core .net-5