我需要創建一個用於在其內存儲的文件,在.NET MVC3應用程序的文件夾寫,但我認爲這個問題是共同所有ASP.Net平臺。 問題是我可以創建文件夾,但無法寫入文件,因爲發生了System.UnauthorizedAccessException
。 我也嘗試給當前運行該web應用程序的用戶提供額外的權限,但沒有任何更改。 這是我到目前爲止的代碼:asp.net MVC3創建文件夾,應用程序可以在
if (!System.IO.Directory.Exists(fullPath))
{
System.IO.Directory.CreateDirectory(fullPath);
var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof(System.Security.Principal.NTAccount));
var dirInfo = new System.IO.DirectoryInfo(fullPath);
var sec = dirInfo.GetAccessControl();
sec.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(userName,
System.Security.AccessControl.FileSystemRights.Modify,
System.Security.AccessControl.AccessControlType.Allow)
);
dirInfo.SetAccessControl(sec);
System.IO.Directory.CreateDirectory(fullPath);
}
string fullPathFileName = System.IO.Path.Combine(fullPath, fileName);
System.IO.File.WriteAllBytes(fullPath, viaggio.Depliant.RawFile);
太糟糕了,代碼最後一行總是拋出System.UnauthorizedAccessException
。 我不是在我的應用中模擬用戶,一切都在預定義的用戶下運行。 我該如何創建一個文件夾並確保應用程序也可以在其中創建文件?
編輯:
我也tryed保存在App_Data特殊文件夾中的文件,但我還是得到了System.UnauthorizedAccessException
錯誤。有人可以告訴我爲什麼會發生這種情況?
我不能使用App_Data文件夾:需要上傳很多的文件,可能是大了,我的要求是解耦數據文件夾 – themarcuz 2012-03-05 13:50:48
應用程序部署。此外,我tryed在偶數保存文件App_Data文件夾(暫時解決並繼續開發),但它不起作用...同樣的錯誤發生 – themarcuz 2012-03-05 16:13:59
你可以檢查服務器嗎IIS_IUSRS組有讀/寫訪問App_Data文件夾嗎? – 2012-03-05 16:19:26