我创建了一个打印PDF文件的服务。当我通过System.Process对象调用FoxitReader,并向其发送控制台命令时,该服务不起作用。我已经了解了Session 0隔离的相关知识,但是我的服务并没有调用GUI应用程序,它只是在可执行文件中执行命令。
以下是我的代码:
以下是我的代码:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "FoxitReader.exe";
proc.StartInfo.Arguments = " /t " + '"' + nombreArchivo + '"' + " " + '"' + nombreImpresora + '"';
EventLog.WriteEntry("InboundServicioImpresion", "Comando impresion:" + proc.StartInfo.FileName + proc.StartInfo.Arguments);
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
proc.WaitForExit();
注意:FoxitReader.exe已包含在服务包中;它安装在与服务相同的文件夹中。
当代码需要时,服务启动并写入事件日志,并且不会崩溃或抛出任何异常(每种方法都由try-catch控制)。此外,它能够将文件从一个文件夹移动到另一个文件夹。唯一不能正常工作的是使用foxit、adobe reader 或sumatraPDF进行打印。
有任何关于为什么不能正常工作的想法吗?
谢谢您提前的帮助,Esteban。