我有一个ASP.NET应用程序,我在Windows 8.1计算机上开发并部署到Windows Server 2012R2计算机。此应用程序通过调用Diagnostics.Process.Start()
启动命令行可执行文件。此命令行可执行文件在首次运行时在相应用户的HKEY_CURRENT_USER下的注册表中写入一些默认条目。稍后通过调用Registry.CurrentUser.OpenSubKey()
访问它们。
在8.1框上的各自ApplicationPoolIdentity用户下运行Web应用程序时,它可以很好地工作,但在WS2012盒子上却没有。在进一步调查后,似乎8.1正在HKEY_USERS
下为这些IIS虚拟帐户创建条目,而WS2012则不是。 NetworkService,DefaultAppPool等在注册表中有条目,但虚拟帐户没有,所以如果我不在WS2012框(例如NetworkService)上的现有用户下运行应用程序池,它可以&#39 ; t写/读注册表项,因此无法提取设置。
这是为什么?如何允许Windows Server 2012为ApplicationPoolIdentity用户帐户创建注册表项?
答案 0 :(得分:0)
我必须做两件事来解决这个问题: 1)在应用程序池的高级设置中,我将“加载用户配置文件”设置为True; 2)从IIS浏览网站。