2010-08-20 66 views
2

我有一個web應用程序,它具有對別名目錄的讀/寫/執行權限。當我在調試模式下在Visual Studio中,下面的語句的工作原理:Directory.Move()在調試模式下工作,但在部署時不工作

Directory.Move("\\\\localhost\\Alias\\oldDirectory","\\\\localhost\\Alias\\newDirectory"); 

最終的結果是,oldDirectory現在在別名目錄newDirectory

,當我測試在生產前這段代碼,我有oldDirectory並在別名目錄newDirectoryDirectory.Move現在表現得好像只是將oldDirectory複製到newDirectory一樣。

這是怎麼發生的?

回答

0

我相信,而不是使用Directory(其是靜態的)我用DirectoryInfo解決了我的問題。我認爲問題的核心在於DirectoryDirectoryInfo做的更多的安全檢查。我仍然不清楚這是爲什麼,但它似乎工作。

3

這很可能是一個權限問題。

正在執行此命令的用戶帳戶可能具有創建/寫入權限,但不會在別名目錄中刪除權限。我會檢查該程序正在執行的用戶帳戶是否具有刪除/刪除子文件夾和文件權限。

編輯:

爲了驗證這一理論,我將暫時授予Users組完全控制的文件夾上,看看問題是否會消失。

+0

你將如何去設置刪除權限?從我可以告訴,如果我有寫權限,我也有刪除權限。 要更改別名目錄的權限,我執行以下操作: 1)右鍵單擊該文件夾,然後選擇「共享和安全性」。 2)點擊「網頁共享」標籤,然後點擊「編輯權限」 3)在出現的窗體上,我只看到「讀取」,「寫入」,但沒有像「刪除」。 我看錯了嗎? – Davidann 2010-08-20 16:34:09

+0

TBH我不確定從Web共享選項卡授予寫入權限是否也授予刪除權限。我期望它,但你應該能夠通過查看安全選項卡上各個用戶/組的權限來進行仔細檢查。上面引用的權限來自安全選項卡的高級對話框。 – 2010-08-20 16:43:38

0
  • 確保該文件夾未處於寫保護狀態,並且在您嘗試移動文件夾時沒有進程正在訪問任何文件。

  • 同時檢查您是否通過驗證應用程序池在哪個用戶帳戶下運行,將安全權限授予正確的用戶。

  • 您可能還需要考慮在本地IIS發展,以防止今後發生這種情況(我去過那裏,不是很好)

相關問題