从Windows服务调用控制台应用程序

时间:2013-11-18 09:47:15

标签: c# pdf process windows-services console-application

我有一个简单的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";

工作正常。 会是什么原因?

2 个答案:

答案 0 :(得分:1)

Windows服务在不同的窗口工作站中运行,无法与桌面交互,除非您使用的是旧版Windows,并勾选服务管理器中服务属性中的复选框。

答案 1 :(得分:1)

那里可能存在一些权限问题(PdfReportGeneration.exe在服务帐户下无法访问,或者可能是它使用的东西......) 我建议捕获Process Monitor日志,看看它究竟在哪里失败。