gpt4 book ai didi

c# - Process.Startinfo 从 ASP.NET 打印 PDF 在 Windows Server 2003 中不起作用

转载 作者:行者123 更新时间:2023-11-30 18:40:02 25 4
gpt4 key购买 nike

我在 ASP.NET C# 中有以下代码,当我在 Debug模式下测试时,它在本地系统 + 生产机器上运行良好。但是当我上传到 IIS 时它不起作用。

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Server.MapPath(filePath);
startInfo.Verb = "print";
startInfo.Arguments = "Printer Name";
Process proc = new Process();
proc.StartInfo = startInfo;
proc.Start();

proc.WaitForExit(5000);
if (proc.HasExited == false)
{
proc.Kill();
}

我尝试过的事情。

  1. 控制面板 > 管理服务 > 服务 > IIS 管理服务 > 登录选项卡 > 检查与桌面交互。重置 IIS 管理员和 IIS。
  2. Printer Properties > Security > Grand ASPNET, NETWORK SERVICE, EVERYONE to full access.
  3. 试图将另一台打印机设置为默认打印机。重新安装/添加打印机。

我尝试了以上所有方法都没有成功。最后,我在我的 machine.config 中尝试了以下内容。

  1. WINNT>Microsoft.NET>Framework>v2.52something>Config> machine.config

我换了这个

processModel autoConfig="true"

有了这个

processModel userName="SYSTEM" password="AutoGenerate"

我收到了这条消息

"Before you can perform print-related tasks you need to install a printer"

我使用的是 acrobat 7,我可以从打印机本身和 acrobat 软件打印测试页。

最佳答案

如果您的机器上安装了 acrobat,则可以使用 Verb。并将打印机名称作为参数传递

var fileName = @"c:\pdf\file.pdf";
var startInfo = new ProcessStartInfo(fileName);
string verbToUse = "PrintTo";
startInfo.Verb = verbToUse;
startInfo.Arguments = "PrinterName";
Process p = Process.Start(startInfo);

关于c# - Process.Startinfo 从 ASP.NET 打印 PDF 在 Windows Server 2003 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com