gpt4 book ai didi

windows-services - ActiveReports 7 从 Windows 服务抛出无效句柄异常打印

转载 作者:行者123 更新时间:2023-12-04 04:53:38 25 4
gpt4 key购买 nike

我有一个在 Server 2008 上作为 Windows 服务运行的应用程序。当我将它作为应用程序运行并发送打印作业时,打印作业会成功处理。但是,如果我将打印作业发送到 Windows 服务,则会引发“句柄无效”异常。

这是错误:

Printing Thread error: The handle is invalid. StackTrace:    at System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument document, PrintEventArgs e)   at System.Drawing.Printing.PrintController.Print(PrintDocument document)   at System.Drawing.Printing.PrintDocument.Print()   at GrapeCity.ActiveReports.Viewer.Win.Printing.PrintImpl.DocumentPrinter.<Print>b__1e()

该服务在具有管理员权限的管理员帐户下运行。

任何帮助,将不胜感激!

最佳答案

需要检查的一些事项:

  • 确保运行该服务的用户帐户在其帐户下安装了正确的打印机,并将其设置为默认打印机。
  • 确保您在 ActiveReports 中使用不显式显示任何 UI 的 Print 方法。
  • 尝试从服务控制面板小程序中选中服务属性页上的“允许服务与桌面交互”复选框。尽管您可能没有显示任何 UI,但打印机驱动程序可能需要该功能。

  • 最后,请记住,通常从 Windows 服务打印有点不稳定。偶 Microsoft's documentation for System.Drawing.Printing有以下免责声明:

    Classes within the System.Drawing.Printing namespace are not supported for use within a Windows service or ASP.NET application or service. Attempting to use these classes from within one of these application types may produce unexpected problems, such as diminished service performance and run-time exceptions.



    这并不意味着它不起作用,而是它很容易出错,以至于微软不想在这种情况下帮助我们打印。我怀疑这是因为制造商的打印机驱动程序不一定是为从非 UI 进程(如 Windows 服务)打印而设计的。

    关于windows-services - ActiveReports 7 从 Windows 服务抛出无效句柄异常打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066478/

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