Назад | Перейти на главную страницу

Кеширование переменной среды пути в окнах?

Я помогаю одному из наших тестировщиков в устранении неполадок конфигурации в системе 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 по-прежнему относится к каталогу bin 7.0.

Есть мысли о том, почему это может происходить? Мне кажется, что переменная PATH кэширует расширение переменной среды APP_HOME. Есть ли способ отключить это поведение?

Изменения не динамические. При изменении переменных среды для Windows необходимо перезапустить другие процессы, чтобы они могли работать в новой среде.

Когда процесс начнется, он увеличит ценность вашего APP_HOME переменную и добавьте ее в свой PATH. Вам нужно будет перезапустить процесс для повторной инициализации или сбросить PATH переменная, поэтому она считывает новое значение APP_HOME.

Кажется, это IIS ошибка. Перезагрузка решит вашу проблему. Обратите внимание, что убийство w3wp и повторное использование пула приложений ничего не даст.

Вы можете проверить, чтобы убедиться w3wp использует правильный путь к среде через processexplorer.exe