Я столкнулся с проблемой, которая была первоначально выставленного Microsoft.CSharp.CSharpCodeGenerator
бросали UnauthorizedAccessException: Access to c:\Users\[wrong-user]\AppData\Local\Temp
получения «доступ запрещен» ошибка при попытке записи в временный каталог различных IIS AppPool пользователя.IIS ApplicationPool пользователь имеет значение неправильно USERPROFILE/TEMP
У меня есть другое приложение, которое фактически работает как [wrong-user]
AppPool, и это приложение делает работы. Однако это имеет смысл, так как имеет доступ на запись к своему собственному каталогу пользователей.
я сузил ошибку вплоть до того, что %USERPROFILE%
возвращается на пути другого пользователя AppPool IIS, несмотря на то, Environment.GetFolderPath(SpecialFolder.UserProfile)
возвращает правильного пути.
Если я перечисляю Environment.GetEnvironmentVariables(User)
, я получаю:
- Путь - C: \ Users \ [неправильно пользователь] \ AppData \ Local \ Microsoft \ WindowsApps;
- TEMP - C: \ Users \ [неправильно пользователь] \ AppData \ Local \ Temp
- TMP - C: \ Users \ [неправильные пользователя] \ AppData \ Local \ Temp
Кроме того, вручную доступа к переменным окружения пользователя с помощью HKEY_USERS/[SID]/Environment
подтверждает, что это просто вниз %USERPROFILE%
быть неправильно:
- Путь -% USERPROFILE% \ AppData \ Local \ Microsoft \ WindowsApps;
- TEMP -% USERPROFILE% \ AppData \ Local \ Temp
- TMP -% USERPROFILE% \ AppData \ Local \ Temp