Записи реестра HKEY_USERS не созданы для ApplicationPoolIdentityUsers в Windows Server 2012R2.

У меня есть приложение ASP.NET, которое я разрабатываю на компьютере с Windows 8.1 и развертываю на компьютере с Windows Server 2012R2. Это приложение запускает исполняемый файл командной строки через вызов Diagnostics.Process.Start(). Этот исполняемый файл командной строки записывает некоторые записи по умолчанию в реестр в разделе HKEY_CURRENT_USER при первом запуске для соответствующего пользователя. Позже к ним можно получить доступ через вызовы Registry.CurrentUser.OpenSubKey().

При запуске веб-приложения под соответствующим пользователем ApplicationPoolIdentity в поле 8.1 оно работает отлично, а в поле WS2012 - нет. При дальнейшем расследовании выясняется, что 8.1 создает записи в разделе HKEY_USERS для этих виртуальных учетных записей IIS, а WS2012 — нет. NetworkService, DefaultAppPool и т. д. имеют записи в реестре, а виртуальные учетные записи — нет, поэтому, если я не запускаю пул приложений под существующим пользователем в поле WS2012 (например, NetworkService), он не может записывать/читать записи реестра, поэтому он не может вытащить настройки.

Почему это? Как разрешить Windows Server 2012 создавать записи реестра для учетных записей пользователей ApplicationPoolIdentity?


person joelmdev    schedule 07.11.2014    source источник


Ответы (1)


Чтобы исправить это, мне нужно было сделать две вещи: 1) в дополнительных настройках пула приложений я установил для параметра «Загрузить профиль пользователя» значение «Истина»; 2) Просмотрите веб-сайт из IIS.

person Nadaav Thivy    schedule 24.11.2014
comment
Спасибо Nadaav, я попробую. - person joelmdev; 24.11.2014