2012-06-14 107 views
1

我正在IIS 7.0上運行的ASP經典(使用JScript)編寫一個存儲庫,並且在移動文件時遇到了一些權限問題。我必須遵循總是給我一個權限被拒絕的錯誤的泛型函數。使用copyFile在IIS上的ASP經典權限錯誤

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); 

} 

當我調用該函數與源source.pathD:\Inetpub_EXT\wwwroot\builder\repo\dump\alicia.docx和目標是D:\Inetpub_EXT\wwwroot\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 

我已經驗證了這兩個文件夾和文件存在的,我給予了充分控制到構建器中的IIS_WPG,IUSR,Authenticated User,System和Administrators。

感謝您的幫助。

回答

1

仔細檢查您的權限。小心假設。

例如,您可能會假設如果IIS用戶對builder目錄擁有權限,則它具有所有子目錄的權限。這不是一個好的假設。 如果在創建子目錄後將builder目錄中的ACL設置爲提供IIS權限,那麼這些子目錄將不會自動繼承後來應用於builder的權限。

您可以使用icacls.exe通過命令行來查看權限:

%windir\system32\icacls.exe d:\inetpub\wwwroot\builder\foo\bar