无法创建存储区目录。 (异常来自 HRESULT0x80131468)的解决方案
为了提高网站的安全性,经常把每个IIS站点都设置单独分配账户和权限(设置应用程序池的账号和匿名登录的账号以及网站根目录的权限),我们就会在相关临时目录
C:\Windows\Temp和C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files 加上站点的用户权限。其实这样做的话,网站已经有足够多的权限可以进行读写和执行之类的。
但是如果在开发的过程中使用Excel的组件实现导出的功能,在导出的数据比较多的时候,Excel就会使用IsolatedStorage来存放临时文件,如果权限不足就会在用户导出的数据的时候就会提示“无法创建存储区目录。 (异常来自 HRESULT:0x80131468)”的错误。如果每个站点没有单独设置用户的时候,是通过IUSR和IIS_IUSRS这种默认用户组来控制权限的,所以windows自带就会给相关的目录添加权限。
一开始也是以为是C:\Windows\Temp和C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary 的临时目录的权限不足,然后设置都还是老样子,输出“无法创建存储区目录”。后面是通过日志调试的方式输出了IsolatedStorage的所在路径。然后给这个IsolatedStorage的路径添加读写权限即可。
IsolatedStorage的所在路径 :C:\ProgramData\IsolatedStorage (注意ProgramData需要开启隐藏文件的显示才能看到。)
总结:
无法创建存储区目录。 (异常来自 HRESULT0x80131468) 这个错误一般是文件目录权限的问题,所以直接找到相关的目录进行设置站点用户权限就行。