【问题标题】:Error when printing in server with web service使用 Web 服务在服务器中打印时出错
【发布时间】:2016-11-21 22:49:43
【问题描述】:

我的 Web 服务使用 C# 从服务器打印机打印发票。在调试模式下调用此服务时工作正常,但在将其发送到 IIS 位置并从 web 资源管理器运行项目后,我收到此错误:

没有安装打印机。

System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal(字符串打印机)在 System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal() 在 System.Drawing.Printing.PrinterSettings.GetHdevmode(页面设置 页面设置)在 CrystalDecisions.CrystalReports.Engine.PrintOptions.CopyTo(打印机设置 打印机,PageSettings 页面)

有什么问题?同一台机器在调试模式下可以正常运行,但在实时模式下不可用。

这部分代码抛出异常:

reportClass.PrintOptions.PrinterName = clsDeclaration.defultPrinter1;
reportClass.PrintToPrinter(numberOfCopies, true, 1, 1);

【问题讨论】:

  • 首先在系统运行的服务器上安装设备打印机驱动程序..
  • 是的,我已经在服务器 PC 上安装了打印机驱动程序,就像我刚才告诉你的,它在调试模式下工作,所以驱动程序工作正常。
  • 检查服务器 .net 框架是否适合您的项目框架,如果安装了 32 位或 64 位,还要检查水晶报表运行时。还要检查打印机是否连接到您的服务器 PC 或检查打印机网络。
  • 谢谢先生,我明白了,应用程序池中的问题

标签: c# asp.net web-services visual-studio-2010 crystal-reports


【解决方案1】:

我找到了解决办法

它在开发机器上工作的原因是开发 Web 服务在您的 Windows 登录上下文中运行,这可能具有正确的打印机设置。在服务器上,它可能作为网络服务或本地系统帐户运行。

解决方案是使用以下说明为系统帐户设置打印机。您还需要更改应用程序正在使用的应用程序池的标识以使用 LocalSystem 标识。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多