NetworkService в IIS имеет пустой путь к AppData

Используя IIS 8 в Windows 8, я настроил пул приложений, который работает с идентификатором Network Service.

В коде страницы я вызываю:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

Оба вызова возвращают null.

Я пробовал комбинации <identity impersonate="true|false"/>, а также устанавливал для параметра «Загрузить профиль пользователя» значение true|false в настройках пула приложений, но всегда получаю нулевой результат.

Я ожидаю получить один из:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local
C:\Windows\System32\config\systemprofile\AppData\Local

На компьютере другого пользователя они получают вторую папку в качестве пути (IIS 7.5), даже если пул приложений работает как сетевая служба.

Что может происходить с этими папками профиля?


person Paul Stovell    schedule 21.08.2012    source источник


Ответы (2)


В своем %WINDIR%\System32\inetsrv\config\applicationHost.config найдите <applicationPoolDefaults>. Под <processModel> убедитесь, что у вас нет setProfileEnvironment="false". Если вы это сделаете, установите его в true.

person Amit Apple    schedule 10.12.2012

Я думаю, вам нужна настройка LoadUserProfile, а также один дополнительный вызов из консоли:

cd "%~dp0" md appdata

Это создаст необходимую папку для пользователя пула приложений. Я не уверен, что это приведет к тому, что Environment.SpecialFolder.ApplicationData вернет правильный путь.

person maartenba    schedule 21.08.2012
comment
Я установил для LoadUserProfile значение true и проверил, что папки существуют, но проблема все еще возникает :( - person Paul Stovell; 21.08.2012
comment
Проверит в списке инсайдеров ASP.NET - person maartenba; 27.08.2012
comment
Аналогичная проблема: stackoverflow.com/questions/9490107/ - person maartenba; 28.08.2012
comment
Еще одно предложение, которое я получил: вы используете UAC? Если да, то пробовали отключать? - person maartenba; 28.08.2012