[英]Python program crashes when run through a Windows service
我的客戶為我提供了一個 Python 控制台應用程序,它執行一些工作並將結果寫入.txt
文件。 我的任務是編寫一個 Windows 服務來讀取特定的.txt
文件並執行進一步的操作。
我在.NET上使用了C#來寫服務。 我的解決方案包含 3 個項目:
Windows 服務層和測試應用程序層都將邏輯層用於核心功能。 當我通過測試層運行應用程序時,一切正常,但每當我嘗試通過服務運行應用程序時,服務啟動的 Python 獨立應用程序不會寫入任何 output 文件。 我可以看到 Python 應用程序在任務管理器中運行,但是任何地方都沒有 output。 我相信 Python 代碼崩潰了,但我無法得到確切的原因。
我嘗試了以下方法來調試問題:
Windows
和System32
目錄中搜索任何相關的 output 文件,只是為了考慮服務將這些目錄作為默認工作目錄的可能性。我在這里完全沒有想法。 我還應該搜索的任何方向?
請注意,如果這很重要:我正在使用System.Diagnostics.Process
啟動 Python 腳本。
如果它適用於您的測試應用程序,則聽起來像是權限問題。 運行 windows 服務的安全上下文/用戶是什么,該用戶是否有權寫入您期望的文件系統? 您是否嘗試過使用 output 文件的完整路徑來確定它的預期位置?
我傾向於編寫一個微型 python 應用程序,它只是將“hello world”保存到一個文件中,並通過 windows 服務使其工作,然后從那里構建。
感謝 timhowarduk 的幫助,我終於能夠找到問題的根本原因。 python script
正在尋找配置文件,當它從 Windows 服務運行時,它正在 System32 中尋找該配置文件。
所有 windows 服務都從 System32 運行。
上述情況導致 python 腳本在 System32 中搜索,因為它作為 windows 服務的一部分運行。 我想我可能只是要求客戶端編輯 python 腳本以從 windows 服務應用程序目錄中讀取配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.