【问题标题】:Service writing files in a different path服务在不同路径中写入文件
【发布时间】:2014-08-11 07:36:59
【问题描述】:

我有 1 份表格和 1 份服务应该写入同一个位置。 所以我在两者中都添加了以下行。

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "myFolder" + Path.DirectorySeparatorChar + "log.txt");

问题在于表单正在将文件写入正确的位置,但服务却没有。
服务写在C:\Windows\System32\config\systemprofile\AppData\Roaming\myFolder\log.txt,表格写在C:\Users\<user>\AppData\Roaming\myFolder\log.txt

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

【问题讨论】:

标签: c# .net windows path windows-services


【解决方案1】:

将文件夹名称放在配置文件中。或者至少输入用户名,这样你就可以在服务中正确构建文件夹名称。

【讨论】:

    【解决方案2】:

    运行服务的用户是NETWORK SERVICELOCAL SERVICE,而不是真实的用户帐户。在这些特殊帐户下,Environment.SpecialFolder.ApplicationData 进入systemprofile 目录。

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

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多