Windows Services应该在哪里编写应用程序数据?

时间:2010-10-28 09:13:44

标签: windows-services

我们将Windows服务作为我们软件的一部分,即使没有用户登录系统,也可以在后台将数据传输到远程数据库。目前这些数据缓存在Program Files目录中,我认为这不是一个好主意,因为它要求我们降低Program Files目录的安全权限。我认为应该缓存这个%LocalAppData%文件夹,这样我们就不必这样做了。

这里最佳做法是什么?

作为额外的要求,我们倾向于在开发期间将服务作为普通应用程序运行,以使调试更容易,如果我们可以轻松切换模式而不丢失任何缓存数据,那将是很好的。虽然如果有必要我们可以没有这个。

由于

2 个答案:

答案 0 :(得分:1)

是的,您应该在%LocalAppData%而不是系统范围的位置创建文件。您可以将CSIDL_LOCAL_APPDATA传递给SHGetFolderPath(),以获取该文件夹的实际名称。

在开发过程中,您可以将服务配置为模拟已连接的用户,以便在服务和正常应用程序模式下将文件存储在同一位置。

答案 1 :(得分:0)

我想说最好的地方是运行该服务的用户的用户AppData文件夹。您是使用默认的本地服务用户还是自定义用户?我不确定本地服务用户的AppData将解析哪个目录,但我认为这是你想要的目录。