[英]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\共享文件夾\PIJ 共享"
"/tes2" = "C:\Dummy"
當我嘗試將其上傳到我自己的計算機時,它可以工作,但是當我嘗試將其上傳到另一台計算機上時,它會出現此錯誤。
這是我試圖解決的問題:
以管理員身份打開 Visual Studio 2013
添加指定文件夾的權限(NETWORK SERVICE、IIS_IUSR、pij.api(我的應用程序池的名稱)、DefaultAppPool、Everyone)。 我已授予每個用戶讀/寫權限。
這些都不起作用。 我還嘗試使用文件資源管理器將圖像文件添加到“\192.168.12.28\Share Folder\PIJ Share”。 它有效。 我應該怎么辦 ?
非常感謝。
更新 (1.1)
我嘗試在沒有 IIS 的情況下執行代碼(在 Visual Studio 2013 上使用 localhost)並且文件成功上傳。 但是當我使用 IIS ( http://api.pijmobile.local/ ) 執行它時,我得到了 Access to the path denied 錯誤。
看來問題出在 IIS 設置上。 仍在尋找答案。
經過幾天的研究,我終於找到了答案。 看完這個鏈接。 這些是我完成的步驟:
在我的計算機和遠程服務器中創建用戶(控制面板>管理員工具>計算機管理>在計算機管理中展開樹“本地用戶和組”>右鍵單擊用戶>新用戶)
填寫用戶名和密碼
打開 Internet 信息服務 (IIS) 管理器,展開您的計算機名稱,單擊應用程序池
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.