列印排程服務錯誤:由於系統中沒有使用者登入,無法啟動互動式 BarTender
症狀
當您從 Integration 列印時,可能會遇到以下問題行為。
- Integration 偶爾會停止運作。
- 標籤偶爾無法從 Integration 列印。
- 從 Integration 列印時出現「存取被拒絕」的錯誤訊息。
在 Print Scheduler 服務日誌(C:\ProgramData\Seagull\Services\Integrations\Service)中會記錄以下錯誤訊息:
|ERROR|Could not start an interactive BarTender due to no logged on users to the system.
最常見的錯誤訊息如下:
- 「Access to 'x' was denied」\「Access is denied.」
- 「Thread was being aborted.」
適用環境
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 服務與權限)。
但如果您需要在從 Integration 列印時,讓使用者在互動式對話框中輸入資料,則必須確保目前登入的使用者有權存取所有所需的檔案、印表機及系統資源。
在這種情況下,您必須在 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,將變更套用到正式環境。
僅供內部參考