![](/img/trans.png)
[英]ASP.NET Process.Start work background in task Manger but not come on front on IIS8.5 (Windows 8.1)
[英]ASP.NET Process.Start not working on IIS8 (Windows 8.1)
在过去的几天里,我一直在努力使这一工作正常进行,并尝试了所有建议的解决方案,包括此处的解决方案:
System.Diagnostics.Process.Start无法从IIS工作
此代码(ASP.NET MVC Web应用程序)在IIS7(Windows 7)上完美运行。
该代码只需使用Adobe Reader从服务器在本地打印机(内联网)中打印PDF文件:
// print receipt
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = acrobatReaderPath;
psInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(psInfo.FileName);
psInfo.Arguments = String.Format("/s /o /h /t \"{0}\" \"{1}\"", filePath, printerName);
psInfo.WindowStyle = ProcessWindowStyle.Hidden;
psInfo.CreateNoWindow = true;
psInfo.UseShellExecute = true;
Process process = Process.Start(psInfo);
应用程序池标识是本地特权帐户。 就像我之前说的,它可以在IIS7上运行。
奇怪的是,我可以在任务管理器中看到启动了后台进程(AcroRd32.exe),包括用于启动它的命令行。 如果我复制命令行并运行它,PDF可以正常打印。
有什么我想念的吗?
我知道有更好的方法可以做到这一点。 也欢迎提出建议。
更新:
澄清:问题是该过程尚未完成,PDF无法打印。
显然问题出在一点点(32 vs 64)。 我还在调试。
代码在以下情况下正在打印 PDF:
在以下情况下,代码不会打印 PDF:
应用程序池正在使用管理员帐户运行,并且在“高级设置”中将“启用32位应用程序”设置为True。
万维网发布服务(W3SVC)在“属性”中选中了“允许服务与桌面交互”。
如果有人知道如何解决此问题,请告诉我。 谢谢。
将Acrobat Reader更改为Foxit Reader( https://www.foxitsoftware.com/products/pdf-reader/ ),从而解决了该问题。 命令行非常相似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.