Мне нужно установить переменную среды COMPLUS_FORCEENC=1
в приложении ASP.NET. Эта переменная должна быть установлена в момент, когда рабочий процесс начинает оказывать влияние.
Поэтому сделал так:
Users
и IIS_IUSRS
.К сожалению, приложение ASP.NET не видит эту переменную. Я распечатал всю среду из приложения.
Когда я использую Process Explorer в рабочем процессе, я вижу, что он работает под правильным пользователем, но переменная не установлена. Так же TEMP
переменная указывает на C:\Windows\Temp
а не (как ожидалось) во временный каталог профиля пользователя (который существует). Я понимаю, что это признак того, что профиль пользователя не загружается.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
показывает загруженный улей этого пользователя. В Environment
ключ для этого пользователя выглядит правильно:
Что я сделал не так? Как сделать так, чтобы переменная появилась?
Это машина с Windows 7.
Windows 7 SP1 представила новый параметр по умолчанию для IIS, который предотвращает загрузку переменных среды, зависящих от профиля, для пулов приложений IIS.
Итак, для Windows 7 SP1 дополнительно необходимо отредактировать следующий файл:
%windir%\system32\inetsrv\config\applicationHost.config
и добавить processModel
элемент с setProfileEnvironment
установлен в true
для пула приложений вашего сайта в applicationPools
раздел.
Должно получиться так:
<add name="ASP.NET v4.0" managedRuntimeVersion="v4.0">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
Видеть Windows 7 SP1 вызывает сбой IntelliTrace Collection в IIS Больше подробностей.
Примечание. Вам следует отредактировать applicationHost.config
файл с правами администратора и после изменения необходимо перезагрузить компьютер.
Просто установите / создайте переменную среды на странице asp.net
лайк:
System.Environment.SetEnvironmentvariable("myvar", "my value", System.EnvironmentvariableTarget.user)
это должно пережить повторные циклы AppPool и даже перезагрузки сервера.
У меня есть полный рабочий пример на этот ответ