2017-07-19 293 views
0

我想通过Adobe Reader打印使用ASP(C#)的PDF - 问题是它在我的本地机器上工作,但在服务器上无法工作。在我的本地启动Adob eReader处于最小化状态,并且我可以在打印机的“查看正在打印的内容”窗口中看到该文件。但在服务器上,我可以看到该进程已从任务管理器启动,但没有UI可见,也没有打印机列表中的文件。使用Acrobat Reader从ASP.Net(c#)打印PDF

我虽然它可能是一个权限问题,但尝试以下步骤后 - 它仍然无法正常工作。

我试过了。

  1. 由于默认情况下它运行在默认应用用户 - 所以我创建的管理员用户下一个新的应用程序池,现在开始在管理的过程中,但我仍然无法看到UI和打印机没有输出。

  2. 我在本文https://support.microsoft.com/en-us/help/555134之后向IIS管理服务添加了“允许服务与桌面交互”的权限 - 但没有区别。

我当前的代码

string args = string.Format("/s /o /h /t \"{0}\" \"{1}\"", filepath, printerName); 

var startInfo = new ProcessStartInfo { 
    FileName = Properties.Settings.Default.AdobeReaderPath, 
    Arguments = args, 
    CreateNoWindow = true, 
    ErrorDialog = false, 
    UseShellExecute = false, 
    Verb = "print", 
    WindowStyle = ProcessWindowStyle.Minimized, 
    RedirectStandardInput = true, 
    RedirectStandardOutput = true 
}; 

var process = Process.Start(startInfo); 
+0

你真的不想那么做。这不仅违反了许可协议,而且Adobe Reader也没有设计成可以作为服务运行。他们不会在这种环境下测试安全缺陷。 – joelgeraci

回答

0

在应用程序池高级设置,请确保您的服务器上的选项 “加载用户配置”设置为

+0

谢谢。它被设置为FALSE,因此我将它设置为TRUE,但仍然没有区别 - 仍然在没有UI和不打印的背景下运行。 –