在本地iis打印机上直接打印stimulsoft报告出现问题

问题描述 投票:0回答:1

我有一个asp.net core web api,我想在调用我的api时直接在stimulsoft报告中将报告打印到本地打印机(不带预览),我的代码是:

StiReport rpt = new StiReport() { UseProgressInThread = false };
rpt.Load(PrintTemplatePath);
rpt.RegBusinessObject("MyData", newData);
rpt.Print(false, new System.Drawing.Printing.PrinterSettings() { Copies = printCount, PrinterName = myPrinterName })

在 Visual Studio iis Express 上调试时一切正常,但是当我将其发布到本地主机 iis 时,rpt.Print(.....) 行出现以下错误

应用程序未运行时显示模式对话框或表单 在 UserInteractive 模式下不是有效的操作。指定 ServiceNotification 或 DefaultDesktopOnly 样式来显示 来自服务应用程序的通知。显示模式对话框或 当应用程序未在 UserInteractive 模式下运行时的表单是 不是有效的操作。指定 ServiceNotification 或 DefaultDesktopOnly 样式显示来自服务的通知 申请。

asp.net-core asp.net-web-api stimulsoft
1个回答
0
投票

您收到的错误是因为 IIS 工作进程对打印机访问或任何桌面交互的权限有限。此限制是由于安全限制造成的,因为在 IIS 下运行的应用程序通常以非交互式受限模式运行。

为了达到您的要求,您可以尝试遵循以下建议:

  1. 以有权限访问打印机的用户身份运行iis应用程序池

  2. 您可以尝试使用客户端打印。通过这种方式允许从用户的浏览器直接与本地打印机交互。

© www.soinside.com 2019 - 2024. All rights reserved.