我目前正在從事Web Api 2項目。 我正在使用的方法是上傳圖像方法。C#訪問另一臺計算機上的路徑被拒絕
這是我的代碼:
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。 我使用該目錄是虛擬目錄
「/圖像」= 「\\ 192.168.12.28 \共享文件夾\ PIJ共享」
「/ TES2」= 「C:\虛擬」
當我試圖將其上傳到我自己的計算機時,它可以正常工作,但是當我試圖在另一臺計算機上上傳時,它出現了這個錯誤。
Access to the path denied error
這裏就是我試圖修復它:
開幕的Visual Studio 2013爲管理員
對指定文件夾(網絡服務,IIS_IUSR,伊斯蘭聖戰添加權限。 api(我的應用程序池的名稱),DefaultAppPool,Everyone)。我已經給每個用戶讀/寫權限。
這些都沒有工作。我也嘗試使用File Exploler將圖像文件添加到「\ 192.168.12.28 \ Share Folder \ PIJ Share」。它的工作原理。 我該怎麼辦?
非常感謝。
更新(1.1)
我嘗試沒有IIS執行代碼(使用的Visual Studio 2013爲localhost),併成功上傳的文件。但是當我使用IIS執行它時(http://api.pijmobile.local/),我得到了訪問路徑被拒絕的錯誤。
看來問題出在IIS設置上。仍在尋找答案。
是「/圖像」=「\ 192.168.12.28 \共享文件夾\ PIJ共享」應該讀\\ 192.168.12.28 ..例如它在機器上的共享 - 什麼是你的ISS運行,因爲它會改變有權訪問該共享..幾乎可以肯定 – BugFinder
我的IIS正在作爲ApplicationPoolIdentity(pij.api)運行。我已經在權限中添加了它作爲用戶,但仍然無法正常工作。我還嘗試將我的IIS更改爲網絡服務並將其添加爲用戶。仍然無法正常工作 –
是否將其添加到共享或只是該文件夾? – BugFinder