ApplicationPoolIdentity 环境变量 IIS

Bea*_*epp 12 windows iis application-pools

是否可以为 ApplicationPoolIdentity 虚拟帐户设置环境变量?这方面的文档几乎不存在。

我想为该应用程序池注入一个环境变量。似乎人们为应用程序池创建唯一帐户来执行此操作,但我所了解的有关虚拟帐户的内容意味着我不必这样做,但根本没有解释如何执行此操作。

aus*_*ian 13

是的!(只要您使用的是 IIS 7.0+)您需要loadUserProfile将 Application Pool Identity的设置设置为 true。应用程序池标识现在将在 \Users\[应用程序池名称] 下有一个用户配置文件。然后,您可以编辑此配置文件以具有自定义环境变量等。

IIS 7 Tip #3 您现在可以加载应用程序池标识的用户配置文件

编辑:我刚刚测试了这个(在 IIS 10 中),因为你的评论,它肯定在这里工作。

  1. 在 IIS 中,我创建了一个名为的新应用程序池 Testing
  2. 我更改了应用程序池默认值以将加载用户配置文件设置为 True
  3. 我启动了应用程序池,测试
  4. 我检查了用户配置文件是否是在 \Users\Testing 创建的:否
  5. 我在应用程序池中添加了一个网站并重新启动了该网站
  6. 我再次检查以查看是否创建了用户配置文件:仍然没有
  7. 我在浏览器中导航到该网站,因此会加载应用程序池
  8. 我第三次检查以查看是否创建了用户配置文件:是
  9. 我检查了用户注册表是否已加载HKEY_USERS,(通过检查位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelistNTUSER.DAT文件是否[...]\Users\Testing\NTUSER.DAT已加载,并且是否已加载 SID S-1-5-82-454248297-962034619-2554273252-202815998-4121577539
  10. 我检查了HKEY_Users\[SID]\Environments密钥是否存在,它存在,并且有值TEMPTMP指向%USERPROFILE%\AppData\Local\Temp.

我不得不做了页面加载的原因是因为我忘了改变Start Mode,从OnDemandAlwaysRunning。当我创建另一个Start Mode设置为 的应用程序池时AlwaysRunning,当我将一个网站分配给应用程序池并重新启动该网站时,就会创建用户配置文件。

有关应用程序池标识的更多有用信息: 应用程序池标识