Windows服务无法写入%LOCALAPPDATA%

Dis*_*tum 6 .net c# windows-services

我已经构建了一个仅在不作为Windows服务运行时才有效的应用程序.嗯,服务运行,但它没有做它应该做的事情.该服务使用本地服务帐户.所以为了启动调试,我想我会从简单的事情开始:让它在启动时创建一个目录:

Directory.CreateDirectory(
    Environment.SpecialFolder.LocalApplicationData + "\\MyService");
Run Code Online (Sandbox Code Playgroud)

当我启动该服务时,它几乎立即停止,Windows报告了这一事实.当我注释掉上面的语句,重新编译并重新安装时,服务运行没有停止.

显然上面的行引发了某种异常.我无法记录错误,因为我无法写入文件系统.任何想法为什么本地服务无法在自己的%LOCALAPPDATA%中创建目录?

Blu*_*ict 10

您应该将GetFolderPath与LocalApplicationData一起使用,如下所示:

string folderName = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData), 
    "MyService");

Directory.CreateDirectory(folderName)
Run Code Online (Sandbox Code Playgroud)