2017-06-13 50 views
0

我是ASP.NET Core的新手,所以我正在制作一个API,我试图上传一张图片通过我的Web API将图片保存到Web服务器上我在Windows Server 2016标准版VPS机器上运行API我在机器上安装了IIS 10我收到的错误(当进行远程调试时) :ASP.NET Core System.UnauthorizedAccessException:访问路径'C: ...'被拒绝

{System.UnauthorizedAccessException:对路径 'C:\家庭网络\房屋\ 13' 被拒绝 在System.IO.Win32FileStream..ctor(字符串路径,的FileMode模式,FileAccess的访问,文件共享。共享,Int32 bufferSize,FileOptions选项,FileStream父级) 在系统。 IO.Win32FileSystem.Open(字符串fullPath,FileMode模式,FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项,FileStream父项) at System.IO.FileStream.Init(String path,FileMode mode,FileAccess access,FileShare share,Int32缓冲区大小,FileOptions选项) at System.IO.FileStream..ctor(String path,FileMode mode) at HomeNetAPI.Controllers.HouseController.d__6.MoveNext()in C:\ Users \ okuhl \ Documents \ HomeNet \ Web API \ HomeNetAPI \ src \ HomeNetAPI \ Controllers \ HouseController.cs:line 83}

这很奇怪,因为目录是创建的,如果它们不存在。下面是一些代码,其中失败的情况:

if (resultHouse != null) 
{ 
    if (!Directory.Exists($"C:/HomeNET/Houses/{resultHouse.HouseID}")) 
    { 
     Directory.CreateDirectory($"C:/HomeNET/Houses/{resultHouse.HouseID}"); 
    } 

    String fileName = new FileInfo(imageFile.FileName).Name; 
    String fileExtension = new FileInfo(imageFile.FileName).Extension; 
    using (var fileStream = new FileStream($"C:/HomeNET/Houses/{resultHouse.HouseID}", 
     FileMode.Create)) //Bombs out after this line 
    { 
     var result = imageFile.CopyToAsync(fileStream); 
     if (result.IsCompleted) 
     { 
      newHouse.HouseImage = Path.Combine($"C:/HomeNET/Houses/{resultHouse.HouseID}", $".{fileExtension}"); 
      var updateResult = await Task.Run(() => 
      { 
       return houseRepository.UpdateHouse(newHouse); 
      }); 
      if (updateResult != null) 
      { 
       response.DidError = false; 
       response.Message = $"House {newHouse.Name} has been created successfully! Invite friends ad family to your house!"; 
       response.Model = newHouse; 
       return Ok(response); 
      } 
      else 
      { 
       response.DidError = true; 
       response.Message = "Something went wrong with creating the house. Please try again"; 
       response.Model = newHouse; 
       return BadRequest(response); 
      } 
     } 
     else 
     { 
      response.DidError = true; 
      response.Message = $"Something Went wrong with creating your house. House image could not be saved onto the system. \n {result.Exception.Message}"; 
      response.Model = newHouse; 
      return BadRequest(response); 
     } 
    } 
} 

我试图做的文件夹提供给大家,并没有奏效。我也尝试给我的AppPool权限修改该文件夹,并没有工作。

任何提示将是伟大的。

回答

相关问题