我有一个简单的Windows服务,我需要用它来调用控制台应用程序。控制台应用程序通过打开adobe reader窗口生成pdf打印。运行控制台应用程序可以正常打印pdf.But从服务调用它不成功。它甚至没有显示我记录事件的控制台窗口。
Process pdfprocess = new Process();
pdfprocess.StartInfo.FileName = @"C:\Documents and Settings\xyz\Desktop\dgdfg\PdfReportGeneration\bin\Debug\PdfReportGeneration.exe";
pdfprocess.StartInfo.UseShellExecute = false;
pdfprocess.StartInfo.RedirectStandardOutput = true;
pdfprocess.Start();
但是调用其他应用程序,比如
pdfprocess.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe";
工作正常。 会是什么原因?
答案 0 :(得分:1)
Windows服务在不同的窗口工作站中运行,无法与桌面交互,除非您使用的是旧版Windows,并勾选服务管理器中服务属性中的复选框。
答案 1 :(得分:1)
那里可能存在一些权限问题(PdfReportGeneration.exe在服务帐户下无法访问,或者可能是它使用的东西......) 我建议捕获Process Monitor日志,看看它究竟在哪里失败。