打印计划程序服务错误:由于系统中没有用户登录,无法启动交互式 BarTender
症状
当您通过 Integration 打印时,可能会遇到以下问题行为。
- Integration 间歇性停止运行。
- 通过 Integration 打印标签时,标签偶尔无法打印。
- 通过 Integration 打印时出现“访问被拒绝”或“已拒绝访问”的错误信息。
在 Print Scheduler 服务日志(C:\ProgramData\Seagull\Services\Integrations\Service)中会记录以下错误信息:
|ERROR|由于系统没有已登录用户,无法启动交互式 BarTender。
与上述信息同时出现的最常见错误信息有:
- “访问‘x’被拒绝”或“访问被拒绝。”
- “线程正在被中止。”
适用环境
BarTender 2019 及更高版本。
通过 Integration Builder 或已部署的 Integration 进行打印。
诊断方法
- 在 Print Scheduler 服务的文本日志中(C:\ProgramData\Seagull\Services\Logging)查找错误信息。
- 在 Integration Builder 中打开 Integration,检查所有打印操作(如打印文档、打印命令脚本、打印 BTXML 脚本等)的打印选项标签页,确认提示输入数据选项框是否被勾选。
可能的解决方案
解决方案 1 - 取消勾选 Integration 打印操作中的“提示输入数据”选项。
如果您在通过 Integration 打印时不需要用户在交互式对话框中输入数据(如数据录入表单),建议取消勾选 Integration 中的提示输入数据选项。
-
- 建议在重新部署 Integration 前先测试此更改。
解决方案 2 - 在 BarTender Print Scheduler 服务上指定用户账户。
通常建议让 BarTender Print Scheduler 服务以本地系统身份运行,因为该服务会使用用户模拟。如果在 Integration 文件中定义了用户账户,服务会模拟该账户并以本地系统账户身份运行。以本地系统账户运行时,服务可以像其他账户一样运行。(BarTender 服务与权限)。
但如果您确实需要用户在交互式对话框中输入数据,则必须确保当前登录用户有权访问所有所需的文件、打印机和系统资源。
在这种情况下,您需要在 Windows 服务管理控制台中的BarTender Print Scheduler服务,以及 Integration 的打印操作中,指定具有以下属性的账户:
- 拥有本地管理员权限
- 具有域级访问权限(如果需要访问网络资源)
- 密码不会更改
如何在 BarTender Print Scheduler 服务上设置用户账户:
- 打开 Windows 服务。
- 右键点击BarTender Print Scheduler,选择属性。
- 选择登录标签页。
- 点击此账户单选按钮,然后输入用户账户的用户名和密码。
- 点击应用,然后点击确定。
- 右键点击BarTender Print Scheduler服务,选择重新启动以重启服务。
如何在 Integration Builder 的打印操作中设置用户账户:
- 在 Integration Builder 中打开您的 Integration 文件。
- 选择 Integration 的打印操作(如打印文档、打印 BTXML 脚本、打印命令脚本等)。
- 选择打印操作的操作标签页。
- 选择指定用户凭据单选按钮,然后输入您在 Windows 服务中为 BarTender Print Scheduler 服务指定的相同用户名和密码。
- 使用测试标签页在重新部署 Integration 前测试更改。测试完成后,使用部署标签页重新部署 Integration,将更改应用到生产环境中的 Integration。
仅供内部参考