我需要创建一个用于在其内存储的文件,在.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