我看到了许多类似的老问题,但事实并非如此。
Asp.net应用程序在启用了“加载用户配置文件”的AppPool(iis in win10)中运行。
但是Environment.GetFolderPath(ApplicationData或LocalApplicationData)返回一个空字符串。CommonApplicationData返回正确的文件夹。
我确保磁盘上存在{user} \ AppData。
因此,问题是:如何获取AppData的非空字符串?
仅'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路径!