是否可以为 ApplicationPoolIdentity 虚拟帐户设置环境变量?这方面的文档实际上不存在。
我想为该应用程序池注入一个环境变量。似乎人们会为应用程序池创建唯一的帐户来执行此操作,但我读到的有关虚拟帐户的内容表明我不必这样做,但根本没有解释如何执行此操作。
答案1
是的!(只要您使用的是 IIS 7.0+)您需要将loadUserProfile
应用程序池标识的设置设为 true。应用程序池标识现在将在 \Users\[应用程序池名称] 下有一个用户配置文件。然后您可以编辑此配置文件以拥有自定义环境变量等。
IIS 7 提示 # 3 您现在可以加载应用程序池标识的用户配置文件
编辑:由于您的评论,我刚刚测试了这一点(在 IIS 10 中),它在这里肯定有效。
- 在 IIS 中,我创建了一个名为的新应用程序池
Testing
- 我更改了应用程序池默认值,将加载用户配置文件设置为
True
- 我启动了应用程序池,测试
- 我检查了用户配置文件是否在 \Users\Testing 中创建:没有
- 我向应用程序池添加了一个网站并重新启动了该网站
- 我再次检查用户配置文件是否已创建:仍然没有
- 我在浏览器中导航到该网站,因此应用程序池将加载
- 我第三次检查用户配置文件是否已创建:是的
- 我检查了用户注册表是否已加载
HKEY_USERS
,(通过检查位于的文件HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
是否已加载,并且已加载,带有 SID )NTUSER.DAT
[...]\Users\Testing\NTUSER.DAT
S-1-5-82-454248297-962034619-2554273252-202815998-4121577539
- 我检查了密钥是否存在
HKEY_Users\[SID]\Environments
,它存在,并且具有值TEMP
并TMP
指向%USERPROFILE%\AppData\Local\Temp
。
我必须进行页面加载的原因是我忘记将从 更改为Start Mode
。OnDemand
当AlwaysRunning
我创建另一个Start Mode
设置为 的应用程序池时AlwaysRunning
,当我将网站分配给应用程序池并重新启动该网站时,会创建用户配置文件。
有关应用程序池标识的更多有用信息: 应用程序池标识