[英]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.