在Windows 10上,Application Pool的setProfileEnvironment
的默认值是false,而在Windows 2012/2016上,默认值是true。这就导致Win 10上的环境变量不能正常加载,在读写临时文件的时候出现权限错误。
这个问题在https://github.com/aspnet/Docs/issues/10864 被讨论过,默认值在Server环境中已经修复,但是非Server环境没有。
这个问题的解决办法是:
- 打开
C:\Windows\System32\inetsrv\Config\applicationHost.config
- 找到你的Application Pool的<processModel>节点
- 添加
setProfileEnvironment=”true”
- 重启Application Pool
另外还可以通过Powershell的脚本来解决
Set-ItemProperty IIS:\AppPools\app-pool-name -name procesModel -value @{setProfileEnvironment=$true}
DONE.
发表在Medium