0

我有一个 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)上的现有用户下运行应用程序池,它就无法写入/读取注册表项,因此它无法提取设置。

为什么是这样?如何允许 Windows Server 2012 为 ApplicationPoolIdentity 用户帐户创建注册表项?

4

1 回答 1

0

我必须做两件事来解决这个问题:1)在应用程序池的高级设置中,我将“加载用户配置文件”设置为 True;2) 从 IIS 浏览网站。

于 2014-11-24T02:37:03.283 回答