<%@ Page Language="C#" Debug="true" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
//设置HtmlInputFile控件的属性
UploadFile.MaxLength = 30;
UploadFile.Size = 20;
}public void DoUpload(Object src,EventArgs e)
{
HttpPostedFile hpf = UploadFile.PostedFile;
FileName.Text = hpf.FileName;
FileSize.Text = hpf.ContentLength.ToString();

//取得文件名(不含路径)
char[] de = {'\\'};
string[] AFilename = hpf.FileName.Split(de);
string strFilename = AFilename[AFilename.Length-1];
rname.Text = strFilename; hpf.SaveAs(Server.MapPath(".")+"\\"+strFilename);
}
</script><html>
<head>
<title>上传单个文件</title>
</head>
<body>
<form Enctype="multipart/form-data" runat="server">
<b>上传单个文件示例</b>
<hr>
请选择文件上传:<input type="file" id="UploadFile" runat="server"><br>
<input type="submit" value="上传" OnServerClick="DoUpload" runat="server">
<hr>
上传文件名:<asp:Label id="FileName" Text="尚未上传" runat="server" /><br>
上传文件大小:<asp:Label id="FileSize" Text="尚未上传" runat="server" /><br>
真实文件名:<asp:Label id="rname" Text="尚未上传" runat="server" />
</form>
</body>
</html>
错误提示:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------对路径“c:\inetpub\wwwroot\net\Chapter5\Form1.vb”的访问被拒绝。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.UnauthorizedAccessException: 对路径“c:\inetpub\wwwroot\net\Chapter5\Form1.vb”的访问被拒绝。 ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。源错误: 
行 20:  rname.Text = strFilename;
行 21: 
行 22:  hpf.SaveAs(Server.MapPath(".")+"\\"+strFilename);
行 23: }
行 24: </script>
 源文件: c:\Inetpub\wwwroot\net\Chapter5\UploadSingleFile.aspx    行: 22 

解决方案 »

  1.   

    看看 配置文件是否有 <identity   impersonate= "true "/>
    如果有删除或者注释掉,然后再试试。
      

  2.   

    把你要上传文件的目标文件夹的安全设置一下,允许你的asp.net 用户访问就OK了,如果你在系统中专门设置一个用户用来做这件事情,就把那个用户加到目标文件夹的安全中,允许其写入,同时在webConf中设置 <identity       userName="用户名" password="密码" impersonate=   "true   "/> 
    如果用aspnet用户,就把这句给屏掉。
      

  3.   

    上传文件保存的目录的安全选项卡里加上一个用户aspnet,给这个用户赋予可写的权限