aspx.net中的FileUpload控件不允许文件读取

时间:2013-04-08 14:28:37

标签: asp.net file-upload file-permissions

我正在尝试使用FileUpload控件将上传的文件读取到服务器,但是,我收到以下错误:

  

ASP.NET无权访问所请求的资源。考虑   授予对ASP.NET请求的资源访问权限   身份。 ASP.NET具有基本进程标识(通常是   IIS 5上的{MACHINE} \ ASPNET或IIS 6上的网络服务)如果使用的话   该申请不是冒充。如果申请是   通过<identity impersonate="true"/>模仿,身份将是   匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的用户   请求用户

我调查了,似乎该文件夹没有网络服务帐户的权限,所以我添加它但问题仍然存在。这是我的FileUpload控件的代码:

<asp:FileUpload ID="FileUpload1" runat="server" style="top: 164px; left: 12px;       position: absolute; height: 22px; width: 281px" />

这是我用来在我的服务器中保存文件的代码:

protected void Button1_Click1(object sender, EventArgs e)
{
    FileUpload1.SaveAs("C:\\folder\\autoTrack.xlsx");
    StatusLabel.Text = FileUpload1.PostedFile.FileName;
    if (FileUpload1.PostedFile.FileName != "")
    {
        this.readFile("C:\\folder\\autoTrack.xlsx"); //this is where the program crash due to lack of permissions!
    }
    else 
    {
        StatusLabel.Text = "Select a file to start the process!";
    }

}

c:\ folder文件夹的ACL具有具有完全控制权限的网络服务,并且允许继承传播到子对象。

此外,我读到在应用程序池的“身份”选项卡中使用域帐户可以解决问题,但如果我将身份从预定义的网络服务更改为我的域用户,则在尝试访问时出现“服务不可用”我的申请。

非常感谢您对此的任何帮助。

2 个答案:

答案 0 :(得分:0)

首先,尝试在文件夹中授予Everyone权限,以查看它是否有效。如果是,那么只需找到正确的用户即可授予正确的权限。如果您在IIS上运行,则应该向应用程序池用户授予权限,如此处所述 - &gt; http://www.iis.net/learn/manage/configuring-security/application-pool-identities

答案 1 :(得分:0)

经过多次努力,我找到了问题。您必须在服务器中设置网络服务的DCOM属性。以下链接介绍了如何操作:

http://community.spiceworks.com/education/projects/Setting_The_Default_DCOM_Properties_And_Security

设置完毕后,我停止接收访问错误。