System.UnauthorizedAccessException的

时间:2011-10-23 21:19:13

标签: asp.net vb.net

Dim filePath As String = "~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/" & itemID & Path.GetExtension(fuImage.FileName)
        MsgBox(filePath)
        If fuImage.HasFile Then
            If Directory.Exists(Server.MapPath("~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/")) = False Then
                Directory.CreateDirectory(Server.MapPath("~/Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString & "/"))
            End If
            'lblMessage.Text = ""
            If checkFileType(fuImage.FileName) Then

                fuImage.SaveAs(Server.MapPath("../Images/FleaMarket/uploadedImages/" & User.Identity.Name.ToString))

我收到错误“System.UnauthorizedAccessException:访问路径'D:\ TriceDealsII Updated \ 13-10-11 \ Tricedeals II(4)\ Images \ FleaMarket \ uploadedImages \ mitali2054'被拒绝”< /强>

为什么?

2 个答案:

答案 0 :(得分:1)

在IIS中运行的ASP.NET应用程序使用分配给指定应用程序池的用户。对于每个应用程序池,将有一个Windows用户,它是Windows组“IIS_IUSRS”的一部分。由于此用户/组没有对Web应用程序(或任何其他目录)目录的写入/更改访问权限,因此您必须手动授予这些权限。

要实现此目的:在资源管理器中导航到指定路径,您希望在其中编写文件/数据,打开目录的安全页面,将AppPool用户或组“IIS_IUSRS”添加到列表中并选择写(或更改)权限。

注意:写入权限始终存在安全风险。因此,您应该尽可能地限制它。

答案 1 :(得分:0)

这可能是由您尝试访问的文件上的权限问题引起的。您可以尝试Procmon查看它是否会告诉您尝试访问该文件的帐户,然后向该帐户授予必要的权限。