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
这是我尝试修复它的方法:
作为管理员打开 Visual Studio 2013
添加对指定文件夹的权限(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。这些是我完成的步骤:
在我的计算机和远程服务器中创建用户(控制面板 > 管理员工具 > 计算机管理 > 在计算机管理中展开树“本地用户和组” > 右键单击用户 > 新用户)
填写用户名和密码
打开 Internet 信息服务 (IIS) 管理器,展开您的计算机名称,单击应用程序池
- 右键单击您的网站应用程序池 > 高级设置
- 在高级设置 Window 中,单击身份旁边的 ...
- 选择自定义账户 > 点击设置
- 输入您之前创建的用户名和密码 > 确定 > 确定 > 确定
- 就是这样,您将能够访问网络共享并查看它。
我目前正在从事 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
这是我尝试修复它的方法:
作为管理员打开 Visual Studio 2013
添加对指定文件夹的权限(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。这些是我完成的步骤:
在我的计算机和远程服务器中创建用户(控制面板 > 管理员工具 > 计算机管理 > 在计算机管理中展开树“本地用户和组” > 右键单击用户 > 新用户)
填写用户名和密码
打开 Internet 信息服务 (IIS) 管理器,展开您的计算机名称,单击应用程序池
- 右键单击您的网站应用程序池 > 高级设置
- 在高级设置 Window 中,单击身份旁边的 ...
- 选择自定义账户 > 点击设置
- 输入您之前创建的用户名和密码 > 确定 > 确定 > 确定
- 就是这样,您将能够访问网络共享并查看它。