ASP.NET IIS System.UnauthorizedAccessException: 对路径“C:\......xls”的访问被拒绝。
问题:
System.UnauthorizedAccessException: 对路径“C:\.....xls”的访问被拒绝。
背景:
项目中用到Excel导出功能,用的是Excel模板的方式来做,意思每次,Excel会去读取这个位置下的模板Excel文件,这个问题不是经常出现,而是
偶尔出现,今天大家都在用的时候就都出现了,我以为是同时访问的原因导致,但细想了一下,不应该啊,是读取权限而以,于是还是先baidu再园子,还是在园子中找到了答案
我用的是第二个处理办法。记录一下,加深印象。觉得好多问题都在园子中能找到,这是我15年做的最正确的一件事(加入园子)
注意:第一个标识我设置的是 LocalService 结果也是可以的,我用的是 二 方法.
解决方法:
一、在IIS中的默认应用程序池-->高级设置...-->标识改成Local System可以解决该问题。
二、在需要进行读写操作的目录下添加Network Service这个帐号。
具体过程:对该文件夹按右键--属性--安全--添加--高级--立即查找--在“搜索结果”下选“NETWORK SERVICE”--确定--确定--确定
三、在网上查询了很多信息,有下列几种解决方案:
1.可能是安装出了问题,重新安装 执行命令,aspnet_regiis -i ,记得要生启啊
2.提升everyone的权限到可修改
3.提升aspnet权限:控制面板-管理工具-计算机管理-本地用户和组 找到ASPNET 隶属于里面加上Administrators
4.将iis虚拟目录删掉后重新建
5.在web.config文件中加入<identity impersonate="true"/>
6. 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
everyone加写入权限
7.用xml文件保存系统选项设置,用asp.net写入,调试运行(ctrl+F5)正常。站点配置后运行报错:“对路径xxx.xml的访问被拒绝”。资源管理器->工具->文件夹选项->查看 不选"使用简单文件共享",右击xml文件,选"属性"点"安全"添加"aspnet",选"完全控制",即可。