我正在尝试使用ASP.NET MVC将文件上传到文件夹。我面临的问题是错误:
ASP.NET无权访问所请求的资源
以下是错误的完整描述:
访问路径' D:\ test'被拒绝。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:
System.UnauthorizedAccessException
:访问路径' D:\ test'被拒绝。ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。
要授予对文件的ASP.NET访问权限,请在文件资源管理器中右键单击该文件,然后选择"属性"并选择“安全”选项卡。点击"添加"添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框。
我尝试向网络服务,本地用户,管理员,iis_iusers等所有类型的帐户授予完全权限 - 基本上几乎所有用户组/帐户。但是,我没有找到任何线索
以下是我使用的代码:
HTML标记:
<form action="~/home/uploadfiles" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="text" for="file" />
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
C#代码:
public class ViewDataUploadFilesResult //class of file
{
public string Name { get; set; }
public int Length { get; set; }
}
public ActionResult UploadFiles()
{
var r = new List<ViewDataUploadFilesResult>();
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
var FilePath = @"D:\test";//Server.MapPath("/videos1");
string savedFileName = Path.Combine(
AppDomain.CurrentDomain.BaseDirectory,
Path.GetFileName(hpf.FileName));
hpf.SaveAs(FilePath);
r.Add(new ViewDataUploadFilesResult()
{
Name = savedFileName,
Length = hpf.ContentLength
});
}
//return View("UploadedFiles", r);
return View("About");
}