4

在 Windows 8 上使用 IIS 8,我设置了一个应用程序池,它以Network Service.

在页面代码中,我调用:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

两个调用都返回 null。

我已经尝试过组合<identity impersonate="true|false"/>以及在应用程序池设置中将加载用户配置文件设置设置为 true|false,但我总是得到空结果。

我希望得到以下之一:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local
C:\Windows\System32\config\systemprofile\AppData\Local

在另一个用户的计算机上,即使应用程序池作为网络服务运行,他们也会将第二个文件夹作为路径 (IIS 7.5)。

这些配置文件文件夹会发生什么?

4

2 回答 2

1

在你%WINDIR%\System32\inetsrv\config\applicationHost.config寻找<applicationPoolDefaults>. 在 下<processModel>,确保你没有setProfileEnvironment="false"。如果这样做,请将其设置为 true。

于 2012-12-10T18:02:56.650 回答
0

我认为您需要 LoadUserProfile 设置以及来自控制台的一个额外调用:

cd "%~dp0" md appdata

这将为应用程序池用户创建所需的文件夹。我不确定这是否会导致 Environment.SpecialFolder.ApplicationData 返回正确的路径。

于 2012-08-21T14:29:17.863 回答