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

C# Access to path on another computer denied

我目前正在从事 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 分享"

"/tes2" = "C:\Dummy"

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

Access to the path denied error

这是我尝试修复它的方法:

  1. 作为管理员打开 Visual Studio 2013

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

None 其中有效。我还尝试使用 File Exploler 将图像文件添加到“\192.168.12.28\Share Folder\PIJ Share”。它有效。 我该怎么办?

非常感谢。

更新 (1.1)

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

看来是IIS设置的问题。仍在寻找答案。

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

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

  2. 填写用户名和密码

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

  4. 右键单击您的网站应用程序池 > 高级设置
  5. 在高级设置 Window 中,单击身份旁边的 ...
  6. 选择自定义账户 > 点击设置
  7. 输入您之前创建的用户名和密码 > 确定 > 确定 > 确定

  1. 就是这样,您将能够访问网络共享并查看它。