C#访问另一台计算机上的路径被拒绝

时间:2016-08-04 10:13:49

标签: c# iis asp.net-web-api2 httprequest multipartform-data

我目前正在开发Web Api 2项目。 我正在使用的方法是上传图像方法。

这是我的代码:

    public IHttpActionResult Upload()
    {
        string UserID = "12345";

        // LOCAL VARIABLE
        dynamic ExpObj = new ExpandoObject();

    // Virtual Directory Located on My Computer
        var FilePath = HttpContext.Current.Server.MapPath("/Images");

    // Virtual Directory Located on Another Computer (Located on LAN Network)
        var FilePath2 = HttpContext.Current.Server.MapPath("/tes2");

        if (HttpRequest.Files.Count > 0)
        {
            foreach (string file in HttpRequest.Files)
            {
                // GET UPLOADED IMAGE
                var PostedFile = HttpRequest.Files[file];

                // SET FILE NAME ( USERID + Right(FileName,10) )
                string FileName = GetFileName(UserID, PostedFile.FileName, 10);

                // SAVE IMAGE
                //PostedFile.SaveAs(FilePath + FileName);
                string ImagePath = Path.Combine(FilePath, FileName);
                string ImagePath2 = Path.Combine(FilePath2, FileName);

                PostedFile.SaveAs(ImagePath2);
                File.Copy(ImagePath2, ImagePath);

                ExpObj.imageURL = ServerUrl + ServerPath + FileName;
            }
        }
        else
        {
            ErrCode = -900;
        }

        // RETURN IF GOT ERROR
        if (ErrCode < 0)
        {
            return StatusCode((HttpStatusCode)(ErrCode * (-1)));
        }

        // RETURN
        return Ok(ExpObj);
    }

我的方法的作用是,它使用多部分表单数据在API中接收图像作为输入,并将其上传到服务器上。 我正在使用的目录是虚拟目录

“/ Images”=“\\ 192.168.12.28 \ Share Folder \ PIJ Share”

“/ tes2”=“C:\ Dummy”

当我尝试将其上传到我自己的计算机时,它可以正常工作,但是当我尝试将其上传到另一台计算机上时,会出现此错误。

Access to the path denied error

以下是我试图解决的问题:

  1. 以管理员身份打开Visual Studio 2013

  2. 添加指定文件夹的权限(NETWORK SERVICE,IIS_IUSR,pij.api(我的应用程序池的名称),DefaultAppPool,Everyone)。我已经授予每个用户读/写权限。

  3. 这些都没有奏效。我还尝试使用File Exploler将图像文件添加到“\ 192.168.12.28 \ Share Folder \ PIJ Share”。它有效。 我该怎么办?

    非常感谢。

    更新(1.1)

    我尝试在没有IIS的情况下执行代码(在visual studio 2013上使用localhost)并且文件已成功上传。但是当我用IIS(http://api.pijmobile.local/)执行它时,我得到了拒绝路径的访问错误。

    似乎问题出在IIS设置中。仍在寻找答案。

1 个答案:

答案 0 :(得分:2)

经过几天的研究终于找到了答案。看完this link后。这些是我完成的步骤:

  1. 在我的计算机和远程服务器中创建用户(控制面板&gt;管理员工具&gt;计算机管理&gt;在计算机管理中展开树“本地用户和组”&gt;右键单击用户&gt;新建用户)

  2. 填写用户名和密码

    enter image description here

  3. 打开Internet信息服务(IIS)管理器,展开您的计算机名称,单击应用程序池

  4. 右键点击您的网站应用程序池&gt;高级设置
  5. 在“高级设置”窗口中,单击“身份旁边的
  6. 选择自定义帐户&gt;点击设置
  7. 插入您之前制作的用户名和密码&gt;好的&gt;好的&gt;行
  8. enter image description here

    1. 多数情况下,您将能够访问网络共享并进行查看。