2015-05-07 30 views
0

我想將本地文件複製到共享文件夾,但EPERM錯誤顯示。這是我的代碼:EPERM窗口共享文件夾的NodeJS錯誤

var fs = require('fs'); 
var is = fs.createReadStream(SOURCE_FILE); 
var os = fs.createWriteStream(TARGET_FILE); 

is.pipe(os); 
is.on('end', function() { 
    console.log('success'); 
}); 

...這是錯誤消息: 應用已經拋出未捕獲的異常而終止: 錯誤:EPERM,打開 'TARGET_FILE'

TARGET_FILE包括窗口提前共享文件夾中的所有權限的所有用戶

感謝

回答

0

如果您在IIS 7/8運行IISNODE它可以運行對不繼承「所有用戶」權限的特殊類型的用戶。

如果您從命令提示符運行iisnode,它可能以您登錄的用戶身份運行。如果您正在服務包裝器中運行它,它可能還在不會繼承「所有用戶」權限的「用戶」下運行。您可以加載任務管理器(右鍵單擊任務欄)以查看該進程正在運行的用戶。

如果您在IIS中使用IISNODE,node.js將使用與您在其下運行的域相同的用戶。通常是DefaultAppPool。

給默認應用權限:

  1. 右鍵單擊該文件夾

  2. 選擇屬性

  3. 選擇安全選項卡
  4. 單擊編輯按鈕
  5. 點擊添加按鈕
  6. enter IIS應用程序池\默認應用在框中(包括空格)
  7. 單擊檢查姓名按鈕
  8. 現在應該顯示默認應用強調,從用戶的列表中單擊OK
  9. 選擇默認應用併爲它們分配所需的最低權限 - 抵制給予DefaultAppPool過度權利的誘惑。