1

IIS 7.0 で実行されている ASP クラシック (JScript を使用) でリポジトリを作成していますが、ファイルを移動するときにアクセス許可に問題があります。常に許可拒否エラーが発生する一般的な関数に従う必要があります。

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.pathて関数を呼び出すと、次の出力が得られます。D:\Inetpub_EXT\wwwroot\builder\repo\dump\alicia.docxD:\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、認証済みユーザー、システム、および管理者を完全に制御できるようにしました。

ご協力いただきありがとうございます。

4

1 に答える 1

1

権限を再確認してください。仮定に注意してください。

たとえば、IIS ユーザーがbuilderディレクトリに対するアクセス許可を持っている場合、そのユーザーはすべてのサブディレクトリに対するアクセス許可を持っていると想定できます。これは良い仮定ではありません。ディレクトリにACL を設定しbuilderて IIS 権限を付与する場合、サブディレクトリを作成した後、これらのサブディレクトリは後で に適用した権限を自動的に継承しませんbuilder

コマンド ラインから icacls.exe を使用して、権限を表示できます。

 %windir\system32\icacls.exe  d:\inetpub\wwwroot\builder\foo\bar 
于 2012-06-15T03:08:10.140 に答える