导读:公司有个站点由于以前一直没有用到上传功能,这次发布需要用到床传功能,但是却双传不了,按照以前的经验将Internet来宾帐号IUSER_WEB2和everyone都添加了权限依然不能上传,后来通过linux下面网站的权限思路,解决了问题。
由于后端有两台windows服务器,文件上传的时候只上传到一台,然后将目录共享的方式共享给另外一台windows服务器,另外一台上传的时候直接上传到共享目录就可以,实现文件的集中存放。
有一个网站有新的版本要发布,这个版本的发布就有一个关于文件上传的需求,但是发布上去以后上传测试,提示如下报错:
Server Error in '/' Application.
Access to the path '\\172.16.1.102\imageshixi.test.com\SysFolder\Internship\DMDS\20120331' is denied.
开发同事说上传的时候会在\\172.16.1.102\imageshixi.test.com\SysFolder\Internship\DMDS目录创建日期目录,然后将文件放在日期目录的下面。从报错来看是没有权限,于是在102服务器上给Internet来宾帐号IUSER_WEB2添加了对该目录完全控制权限,并添加了\\172.16.1.102\imageshixi.test.com目录的共享权限。继续测试问题依旧。再添加everyone的共享和本地权限,还是提示一样的报错。
因为本人对windows不是很熟悉,一直从事linux下的工作,对windows的很多东西都忘得差不多。但是想到操作系统应该都是相通的,如果是linux下的话就需要先找到apache或者nginx的进程用户,然后再给相应的目录添加改用户的权限即可。因此,依照这个思路首先得找到该IIS站点的进程用户,通过命令iisapp -a查看该站点进程池的进程id为7808
然后打开windows进程管理器,勾选上pid,查看该进程的用户是什么用户,
发现这个7808的进程是用用户NETWORK SERVICE来跑,于是添加这个用户对\\172.16.1.102\imageshixi.test.com目录的共享权限,再添加NETWORK SERVICE用户对\\172.16.1.102\imageshixi.test.com\SysFolder\Internship\DMDS的权限,再测试Ok了。
总结:其实从技术的角度出发,很多东西都是相通的,如果我们能多思考,举一反三,灵活应用,那么很多在你看来不知道怎么下手的问题就会迎刃而解。