在Windows 8上使用IIS 8,我设置了一个以Network Service
标识运行的应用程序池。
在页面代码中,我调用:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
两个调用都返回null。
我尝试过组合<identity impersonate="true|false"/>
以及在应用程序池设置中将加载用户配置文件设置为true | false,但我总是得到一个null结果。
我希望得到以下一个:
C:\Windows\ServiceProfiles\NetworkService\AppData\Local
C:\Windows\System32\config\systemprofile\AppData\Local
在另一个用户的计算机上,即使应用程序池作为网络服务运行,它们也会将第二个文件夹作为路径(IIS 7.5)。
这些个人资料文件夹可能会发生什么?
答案 0 :(得分:1)
在%WINDIR%\System32\inetsrv\config\applicationHost.config
寻找<applicationPoolDefaults>
。在<processModel>
下,请确保您没有setProfileEnvironment="false"
。如果这样做,请将其设置为true。
答案 1 :(得分:0)
我认为您需要LoadUserProfile设置以及来自控制台的一个额外调用:
cd“%~dp0” md appdata
这将为应用程序池用户创建所需的文件夹。我不确定这是否会导致Environment.SpecialFolder.ApplicationData返回正确的路径。