IIS目录下文件共享后System.IO.File.Exists返回false
场景:在iis目录下,因为特殊需要共享一个文件夹,给到其他的技术人员访问,突然发现小小的操作,搞“大”了,使用
string path = Server.MapPath("~/file/test.txt");
Response.Write(System.IO.File.Exists(path));
返回的是false,路径是正确的,文件是存在的,为什么会返回false呢?
分析:经过两个臭皮匠的分析,发现问题可能是在权限上
左边是共享后的文件夹,右边是共享文件夹的父文件夹,发现父文件夹多了一个Authenticated Users角色,
文件夹设置为共享后,会去掉从父项继承的配置
Authenticated Users:Windows系统中所有使用用户名、密码登录并通过身份验证的账户,不包括来宾账户Guest,即使来宾帐户有密码。
IIS_IUSRS用户组属于authenticated users,而authenticated users属于Users组。所以添加IIS_IUSRS用户组、IUSR用户也是可以解决这个问题的。
解决方法:为共享文件夹加上“Authenticated Users”的权限,或者选择从父项继承权限。
参考资料:
欢迎在评论区留下你宝贵的意见,不论好坏都是我前进的动力(cnblogs 排名提升)!
如果喜欢,记得点赞、推荐、关注、收藏、转发 ... ;)