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

时间:2017-08-22 15:34:37

标签: asp.net iis

我看到很多这样的老问题,但不是我的情况。

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

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

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

所以,问:我怎样才能得到AppData的空字符串?

1 个答案:

答案 0 :(得分:5)

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

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

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

<configuration>
    <system.applicationHost>
        <applicationPools>
            <add name="YourPool" >
                <processModel  
                 loadUserProfile="true" 
                 setProfileEnvironment="true"/>

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