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)在属性中勾选了允许与桌面交互的服务。

如果有人知道如何解决这个问题,请告诉我。谢谢。

ASP.净的过程.在IIS8 (Windows 8.1)上开始不工作

为Foxit Reader (https://www.foxitsoftware.com/products/pdf-reader/)更改了Acrobat Reader,问题解决了。命令行非常类似。