【发布时间】:2023-03-14 09:05:01
【问题描述】:
我遇到了最初由 Microsoft.CSharp.CSharpCodeGenerator 引发的问题,UnauthorizedAccessException: Access to c:\Users\[wrong-user]\AppData\Local\Temp 在尝试写入 不同 IIS AppPool 用户的临时目录时收到“拒绝访问”错误。
我有另一个应用程序实际上作为[wrong-user] AppPool 运行,并且该应用程序确实 工作。但是,这是有道理的,因为它具有对其自己的用户目录的写入权限。
我已将错误范围缩小到 %USERPROFILE% 返回不同 IIS APPPOOL 用户的路径这一事实,即使 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
【问题讨论】:
标签: iis applicationpoolidentity