Kum*_*hav 4 c# windows-services environment-variables
我的机器上运行了一个Windows服务.当我做的时候
Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments)
Run Code Online (Sandbox Code Playgroud)
它给了我空字符串,但当我在控制台应用程序中执行相同的操作时,它为我提供了MyDocuments文件夹的正确位置.
关于它为什么会发生的任何想法?
这是因为当您作为控制台运行应用程序时,您正在以用户身份登录计算机,因此可以访问"我的文档".当Windows服务正在运行时(默认情况下),它将作为本地系统运行,该系统没有"我的文档"文件夹.这是因为Windows服务在计算机启动时运行,并且不需要用户登录.
问题是,您要对"我的文档"文件夹执行什么操作,而Windows服务可能希望访问非依赖于用户的位置?
最后,要清楚地想象一下,如果您在计算机上安装了10个用户.当没有人登录时,Windows服务会使用哪个用户的"我的文档"?