2016-06-14 148 views
1

在Sitecore中的計劃任務中,我想在數據導入後刪除XML文件。數據導入成功,但在刪除時,我得到拒絕訪問異常。Sitecore使用計劃任務從服務器刪除文件

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> 
System.UnauthorizedAccessException: Access to the path 'X:\..\Website\temp\import\data.xml' is denied. at 
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at 
System.IO.File.InternalDelete(String path, Boolean checkHost) at Website.Intranet.Kernel.ScheduledTasks.Scheduler.ImportData() 

這是我用來刪除文件的代碼。

if (File.Exists(filePath)) 
      { 
       File.SetAttributes(filePath, FileAttributes.Normal); 
       File.Delete(filePath); 

      } 
+0

確定運行應用程序,用戶必須刪除該位置的文件的權利? – Gatogordo

+0

您確定您在導入完成後釋放文件句柄嗎? –

+0

運行計劃任務時是否引發此錯誤?或者你嘗試調試它,而以某種方式運行它並拋出錯誤?嘗試使用(新Sitecore.SecurityModel.SecurityDisabler()){@ – Anton

回答

1

確保您授予對上你的網站運行應用程序池用戶身份的目標文件夾的正確權限。默認情況下,身份是Application Pool IdentityNetworkService

還要確保包含文件夾不只讀

+0

但Sitecore把這個文件放在同一個身份下的那個位置? – Anton

+0

是的。內容文件夾是隻讀的。 – Kamran