ASP.净的过程.在IIS8 (Windows 8.1)上开始不工作
本文关键字:开始 工作 Windows 过程 IIS8 ASP | 更新日期: 2023-09-27 18:06:04
在过去的几天里,我一直在尝试让这个工作,并尝试了所有建议的解决方案,包括这里的一个:
System.Diagnostics.Process。从IIS
开始工作这段代码(ASP。. NET MVC Web应用程序)在IIS7 (Windows 7)上完美运行。
代码只是在本地打印机(内部网)中使用adobereader从服务器打印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:
- Visual Studio 2012 IIS Express on Windows 7(64位)
- IIS7在Windows Server 2008标准(32位)
代码在以下场景中不打印 pdf:
- Visual Studio 2012 IIS7 on Windows 7(64位)
- IIS8在Windows 8.1(64位)
应用程序池使用管理员帐户运行,并且在高级设置中将启用32位应用程序设置为True。
万维网出版服务(W3SVC)在属性中勾选了允许与桌面交互的服务。
如果有人知道如何解决这个问题,请告诉我。谢谢。
为Foxit Reader (https://www.foxitsoftware.com/products/pdf-reader/)更改了Acrobat Reader,问题解决了。命令行非常类似。