使用copyFile的IIS上ASP Classic的权限错误
我正在用运行在IIS7.0上的ASP classic(使用JScript)编写一个存储库,在移动文件时遇到权限问题。我必须遵循总是给我一个权限被拒绝错误的通用函数使用copyFile的IIS上ASP Classic的权限错误,file,asp-classic,jscript,File,Asp Classic,Jscript,我正在用运行在IIS7.0上的ASP classic(使用JScript)编写一个存储库,在移动文件时遇到权限问题。我必须遵循总是给我一个权限被拒绝错误的通用函数 function moveFile(source, target){ fs = new ActiveXObject("Scripting.FileSystemObject"); newloc = target + "\\" + source.name; debug("Copying file: " + sour
function moveFile(source, target){
fs = new ActiveXObject("Scripting.FileSystemObject");
newloc = target + "\\" + source.name;
debug("Copying file: " + source.path + " to " + newloc);
fs.copyFile(source.path, Server.MapPath( "repository/" ), true);
}
当我调用函数with sourcesource.path
为D:\Inetpub\u EXT\wwwroot\builder\repo\dump\alicia.docx
且目标为D:\Inetpub\u EXT\wwroot\builder\repo\repository
时,我得到以下输出:
Treating dumpfile: alicia
Copying file: D:\Inetpub_EXT\builder\repo\dump\alicia.docx to
D:\Inetpub_EXT\wwwroot\builder\repo\repository
Microsoft JScript runtime error '800a0046'
Permission denied
我已经验证了文件夹和文件都存在,并在builder中对IIS_WPG、IUSR、经过身份验证的用户、系统和管理员进行了完全控制
谢谢您的帮助。请仔细检查您的权限。小心假设 例如,您可能假设,如果IIS用户对
builder
目录具有权限,那么它对所有子目录都具有权限。这不是一个好的假设。
如果在创建子目录后,将builder
目录上的ACL设置为授予IIS权限,则这些子目录将不会自动继承您稍后应用于builder
的权限
您可以从命令行使用icacls.exe查看权限:
%windir\system32\icacls.exe d:\inetpub\wwwroot\builder\foo\bar
仔细检查您的权限。小心假设 例如,您可能假设,如果IIS用户对
builder
目录具有权限,那么它对所有子目录都具有权限。这不是一个好的假设。
如果在创建子目录后,将builder
目录上的ACL设置为授予IIS权限,则这些子目录将不会自动继承您稍后应用于builder
的权限
您可以从命令行使用icacls.exe查看权限:
%windir\system32\icacls.exe d:\inetpub\wwwroot\builder\foo\bar