我有一个过程,用于获取要在pdf / print中显示的字节数组。当我运行该进程时,我能够按预期获取字节数组。但是当执行 proc.StandardOutput.BaseStream.CopyTo(ms,2048); 语句时,我得到了一个例外。
下面是我的代码,
public byte[] GetCommandBytes(string command, string workingDirectory)
{
var procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.WorkingDirectory = workingDirectory;
procStartInfo.RedirectStandardOutput = true;
procStartInfo.RedirectStandardInput = false;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
var proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
var ms = new MemoryStream(2048);
proc.StandardOutput.BaseStream.CopyTo(ms, 2048);
proc.WaitForExit();
return ms.ToArray();
}
以下是我被弹出的例外情况
---------------------------
异常:System.AggregateException 消息:发生一个或多个错误。
异常:System.Threading.Tasks.TaskCanceledException 消息:任务已取消。
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task
1.get_Result()
在PETNet.Olympus.ServiceAdapters.ServiceAdapter.ExecuteGetCallReturnByteArray(字符串路由)
在PETNet.Olympus.ServiceAdapters.Production.TemplateResultServiceAdapter.GetPdf(Guid id,布尔值LockTemplateResult)
在PETNet.Olympus.UI.ViewModels.Production.TaskExecution.TemplateTxViewModel.GetPdf()
在PETNet.Olympus.UI.ViewModels.Production.TaskExecution.TemplateTxViewModel.Print()
在PETNet.Olympus.Common.CommandBuilder中。<> c__DisplayClass6_0.b__0(对象o)
在PETNet.Olympus.Common.ActionableCommand.DoExecuteMethod(Object parameter)