2016-08-04 119 views
0

我目前正在從事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

這裏就是我試圖修復它:

  1. 開幕的Visual Studio 2013爲管理員

  2. 對指定文件夾(網絡服務,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設置上。仍在尋找答案。

+0

是「/圖像」=「\ 192.168.12.28 \共享文件夾\ PIJ共享」應該讀\\ 192.168.12.28 ..例如它在機器上的共享 - 什麼是你的ISS運行,因爲它會改變有權訪問該共享..幾乎可以肯定 – BugFinder

+0

我的IIS正在作爲ApplicationPoolIdentity(pij.api)運行。我已經在權限中添加了它作爲用戶,但仍然無法正常工作。我還嘗試將我的IIS更改爲網絡服務並將其添加爲用戶。仍然無法正常工作 –

+0

是否將其添加到共享或只是該文件夾? – BugFinder

回答

0

經過幾天的研究終於找到了答案。閱讀後this link。這些都是我做的步驟:創建在我的電腦用戶和遠程服務器(控制面板>管理工具>計算機管理>計算機管理展開樹「本地用戶和組」>右鍵點擊

  1. 在用戶>新用戶)

  2. 填寫用戶名和密碼

    enter image description here

  3. 打開Internet信息服務(IIS)管理器,展開您的計算機名稱,單擊應用程序池

  4. 鼠標右鍵點擊你的網站的應用程序池>高級設置
  5. 在高級設置窗口中,單擊...身份
  6. 旁邊選擇自定義帳戶>點擊設置
  7. 插入用戶和前面創建> OK>行密碼>行

enter image description here

  • 那是一個你將能夠訪問網絡共享並查看它。