Environment.GetFolderPath (Environment.SpecialFolder.InternetCache) возвращает пустую строку в проекте ASP.Net - PullRequest
4 голосов
/ 13 августа 2011

Я занимаюсь разработкой проекта ASP.Net (framework 2.0) на локальной машине (Windows 7). IIS 7.5 - это локальный веб-сервер.

Когда я запускаю проект локально Environment.GetFolderPath(Environment.SpecialFolder.InternetCache) возвращает пустую строку.

Я немного смущен и расстроен, поскольку столкнулся с этой проблемой при настройке новой машины разработчика, но не могу вспомнить решение и не могу найти решение с помощью Google. Другие члены команды разработчиков под управлением XP не сталкиваются с этой проблемой.

Я ожидаю возврата C:\Users\DefaultAppPool\AppData\Local\Microsoft\Windows\Temporary Internet Files.

Не уверен, если это проблема настройки iis или я могу где-то установить переменную окружения.

Спасибо, Джефф

1 Ответ

5 голосов
/ 13 августа 2011

Я на 99% уверен, что это приведет к проблеме с разрешениями. В IIS7 появился новый «пользователь» с именем AppPoolIdentity, который является идентификатором по умолчанию для пула приложений. Этот пользователь имеет гораздо более низкие разрешения, чем значения по умолчанию в IIS 6.

Я могу воспроизвести вашу проблему, я должен настроить мой AppPool для запуска в качестве LocalSystem или определенного пользователя с правами администратора для получения Environment.SpecialFolder.InternetCache, что имеет смысл, когда я смотрю на нужную папку и просматриваю ее разрешения.

Имейте в виду, что существуют проблемы с безопасностью при запуске пулов приложений IIS с более высокими разрешениями.

...