使用Acrobat Reader从ASP.Net(c#)打印PDF

使用Acrobat Reader从ASP.Net(c#)打印PDF,c#,asp.net,pdf,printing,C#,Asp.net,Pdf,Printing,我正试图通过AdobeReader使用ASP(C#)打印PDF,问题是它在我的本地机器上工作,但在服务器上不工作。在我的本地,它以最小化状态启动Adob eReader,我可以看到打印机“查看打印内容”窗口中的文件。但在服务器上,我可以看到进程已从任务管理器启动,但在打印机列表中没有可见的UI和文件 我认为这可能是一个权限问题,但在尝试了以下步骤之后,它仍然不起作用 我已经试过了 默认情况下,它在DefaultAppPool用户下运行-因此我在admin用户下创建了一个新的应用程序池,它现在在a

我正试图通过AdobeReader使用ASP(C#)打印PDF,问题是它在我的本地机器上工作,但在服务器上不工作。在我的本地,它以最小化状态启动Adob eReader,我可以看到打印机“查看打印内容”窗口中的文件。但在服务器上,我可以看到进程已从任务管理器启动,但在打印机列表中没有可见的UI和文件

我认为这可能是一个权限问题,但在尝试了以下步骤之后,它仍然不起作用

我已经试过了

  • 默认情况下,它在DefaultAppPool用户下运行-因此我在admin用户下创建了一个新的应用程序池,它现在在admin下启动进程,但我仍然看不到UI,打印机上也没有输出

  • 在本文之后,我向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);
    

    在“应用程序池高级设置”中,确保已设置该选项
    在服务器上将用户配置文件加载到True

    你真的不想那样做。这不仅违反了许可协议,而且AdobeReader也没有设计成作为服务运行。他们不会在那种环境中测试安全缺陷。谢谢。之前它被设置为FALSE,所以我将它设置为TRUE,但仍然没有区别-仍然在后台运行,没有UI,也没有打印。