4

我的机器上正在运行一个 Windows 服务。当我做一个

 Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)

它给了我空字符串,但是当我在控制台应用程序中做同样的事情时,它给了我 MyDocuments 文件夹的正确位置。

关于它为什么会发生的任何想法?

4

1 回答 1

10

这是因为当您将应用程序作为控制台运行时,您正在以您(用户)身份登录到计算机,因此可以访问您的“我的文档”。当 Windows 服务运行时(默认情况下),它将作为没有“我的文档”文件夹的本地系统运行。这是因为 Windows 服务在计算机启动时运行,不需要用户登录。

问题是,你想用你的“我的文档”文件夹做什么,而你的 Windows 服务可能想要访问一个不依赖于用户的位置?

最后,为了清楚起见,想象一下如果您在计算机上设置了 10 个用户。当没有人登录时,Windows 服务将使用哪个用户的“我的文档”?

于 2013-07-02T13:07:23.690 回答