我创建了一个使用 LocalSystem 帐户的标准 Windows 服务。对于日志文件,我使用 textwriter 写入 C:\Users\useraccount 目录中的指定文件。问题是,当在 LocalSystem 下作为服务运行时,它根本不想创建或写入文件。
string dir = @"C:\Users\useraccount\log.txt";
StreamWriter sw = File.AppendText(dir);
如您所见,该目录是硬编码的,因此没有任何基本目录冲突,因为 LocalSystem 将从 System32 或类似性质的东西开始。该文件夹的权限允许系统帐户完全访问它(Windows 7),那么为什么我无法创建/写入该文件?
感谢您的任何意见!
编辑:
显然,当我真的需要它作为标准用户运行时,日志程序线程也作为 LocalSystem 运行。那么如何从服务执行线程进程以在本地用户帐户下而不是在 LocalSystem 下运行。
我使用 Thread.new(process) ,其中 process 是一个附加程序。进程程序在写任何东西之前需要接收输入,并且它没有接收输入,因为它在错误的帐户上。我将如何解决这个问题?