GetFolderPath(SpecialFolder.ApplicationData)返回空字符串

Ale*_*ota 1 asp.net iis

我看到了许多类似的老问题,但事实并非如此。

Asp.net应用程序在启用了“加载用户配置文件”的AppPool(iis in win10)中运行。

但是Environment.GetFolderPath(ApplicationData或LocalApplicationData)返回一个空字符串。CommonApplicationData返回正确的文件夹。

我确保磁盘上存在{user} \ AppData。

因此,问题是:如何获取AppData的非空字符串?

Ale*_*ota 5

'loadUserProfile'在IIS中启用选项是不够的!

您必须启用另一个选项。这是'setProfileEnvironment'。我没有找到IIS UI来更改它。

在其中打开文件,%windir%\system32\inetsrv\config\applicationHost.config并添加或更改应用程序池的属性。

<configuration>
    <system.applicationHost>
        <applicationPools>
            <add name="YourPool" >
                <processModel  
                 loadUserProfile="true" 
                 setProfileEnvironment="true"/>
Run Code Online (Sandbox Code Playgroud)

然后,您可以获取ApplicationData或LocalApplicationData路径!