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
目录
因此,要解决这个问题,您需要更改服务运行的用户,或硬编码/确定要使用的正确用户目录。将文件夹名称放入配置文件中。或者至少输入用户名,以便在服务中正确生成文件夹名。请参阅