在 Windows 上缓存路径环境变量?

在 Windows 上缓存路径环境变量?

我正在协助我们的一名测试人员解决 Windows XP SP3 系统上的配置问题。我们的应用程序使用一个名为 APP_HOME 的环境变量来引用应用程序的安装目录。安装应用程序时,我们使用以下环境变量:

APP_HOME = C:\application\
PATH = %PATH%;%APP_HOME%bin

现在,问题在于她正在使用同一应用程序的多个版本。因此,为了在版本 7.0 和 8.1 之间切换,她可能会使用:

APP_HOME = C:\application_7.0\ (for 7.0)

然后将其更改为:

APP_HOME = C:\application_8.1\ (for 8.1)

问题是,一旦进行了此更改,PATH 环境变量显然仍在查看 APP_HOME 变量的旧扩展。因此,例如,在她更改了 APP_HOME 之后,PATH 仍然指向 7.0 bin 目录。

您对为什么会发生这种情况有什么想法吗?在我看来,PATH 变量正在缓存 APP_HOME 环境变量的扩展。有什么办法可以关闭此行为吗?

答案1

这些变化不是动态的。当您更改 Windows 的环境变量时,需要重新启动其他进程,以便它们在新环境中运行。

当进程启动时,它会扩展APP_HOME变量的值并将其附加到PATH。您需要重新启动进程以重新初始化,或重置变量PATH以便它读取 的新值APP_HOME

答案2

这似乎是一个IIS错误。重新启动将解决您的问题。请注意,终止w3wp并回收应用程序池不会产生任何效果。

您可以通过以下方式检查是否w3wp使用了正确的环境路径processexplorer.exe

相关内容