部署于IIS的Django应用访问网络硬盘的权限配置问题
IIS部署Django读取网络硬盘权限配置方案
检查网络共享权限:
不要仅配置盘符的NTFS权限,找到网络硬盘对应的服务器端共享文件夹,在「共享权限」面板添加IIS AppPool\DefaultAppPool账户,赋予「读取/列出文件夹内容」权限;同时确认该文件夹的NTFS权限也包含此账户的读取权限。调整应用池身份:
若网络硬盘需要域验证,可将应用池身份从默认的ApplicationPoolIdentity改为域用户账户(该账户需同时拥有网络共享访问权限和IIS运行权限);也可使用NetworkService身份,此时需在共享权限中添加服务器的计算机账户(格式域名\服务器名$)并赋予读取权限。替换盘符为UNC路径:
代码中不要使用W盘盘符,直接使用网络共享的UNC路径,比如把os.listdir("W:/")改为os.listdir(r"\\目标服务器名\共享文件夹名")——IIS应用池上下文无法识别用户手动映射的盘符。验证权限有效性:
用命令模拟应用池账户访问:runas /user:IIS AppPool\DefaultAppPool cmd.exe,在弹出的命令行中执行dir \\目标服务器名\共享文件夹名,若能正常列出文件,说明权限配置生效。
内容的提问来源于stack exchange,提问作者Datastorm1989
相关产品推荐
相关产品推荐

