C# 服务以不同的路径写入文件

C# 服务以不同的路径写入文件,c#,.net,windows,path,windows-services,C#,.net,Windows,Path,Windows Services,我有一个表单和一个服务,应该写在同一个位置。 因此,我在这两行中都添加了以下行 Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "myFolder" + Path.DirectorySeparatorChar + "log.txt"); 问题是表单正在将文件写入正确的位置,但服务没有服务正在C:\Windows\System32\config\systemprofile\App

我有一个表单和一个服务,应该写在同一个位置。 因此,我在这两行中都添加了以下行

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "myFolder" + Path.DirectorySeparatorChar + "log.txt");
问题是表单正在将文件写入正确的位置,但服务没有
服务正在
C:\Windows\System32\config\systemprofile\AppData\Roaming\myFolder\log.txt和
C:\Users\\AppData\Roaming\myFolder\log.txt中的表单中写入


我不能使用windows事件记录器,我还需要处理一些其他文件。

运行该服务的用户不是真正的用户帐户,而是
网络服务
本地服务
。在这些特殊帐户下,
Environment.SpecialFolder.ApplicationData
进入
systemprofile
目录


因此,要解决这个问题,您需要更改服务运行的用户,或硬编码/确定要使用的正确用户目录。

将文件夹名称放入配置文件中。或者至少输入用户名,以便在服务中正确生成文件夹名。

请参阅