ASP.NET未被授权访问所请求的资源错误

时间:2014-06-28 18:49:11

标签: asp.net asp.net-mvc file-upload iis-7

我正在尝试使用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");
}

0 个答案:

没有答案