2010-11-17 70 views
1

在Windows Server 2008上我的asp.net應用程序,我有這樣的移動臨時文件到其他文件夾,使得它不可訪問

tempfile = Path.GetTempFileName() 
... Write data to tempfile ... 
File.Move(tempfile, storageDir + fileName) 

這只是正常的代碼。之後,當我嘗試從ASP.NET之外訪問文件時,問題就出現了。即使我正在訪問的用戶對storageDir文件夾擁有(遞歸)讀取權限,我也會拒絕訪問。

似乎移動的文件沒有從它被移入的文件夾繼承權限。這是正確的,如果是這樣,有沒有一種簡單的方法來解決這個問題?

現在作爲一個直接修復我已經改變了我的ASP.NET應用程序中File.Move()的每個實例File.Copy()+ File.Delete(),這似乎解決了這個問題。但這感覺像是一種非常骯髒的做事方式。

回答

0

該應用程序可能會佔用文件。

您可能需要釋放該資源。很難從代碼片段中確切知道您如何處理文件,但請嘗試類似tempfile.Dispose()之類的內容。