即使我获得了许可,也拒绝访问路径wwwroot

时间:2018-05-04 05:49:31

标签: c# iis permissions windows-7 asp.net-core-mvc

我正在使用此代码将文件上传到(Windows 7)服务器

[HttpPost]
public IActionResult Upload(string office, IFormFile file)
{
    var webRootPath  = _environment.WebRootPath;
    var floorPlanPath =  _configuration["SydneyFloorplanPath"];

    if (file.Length > 0) {
        var filePath1 = Path.Combine(floorPlanPath,webRootPath.ReplaceFirst("/", ""));

        using (var fileStream = new FileStream(filePath1, FileMode.Create)) {
            file.CopyTo(fileStream);
        }
    }
    return RedirectToAction("Index", new{office = office});
}

在VSCode中调试时效果很好,但在发布后我得到了

  

UnauthorizedAccessException:拒绝访问路径'C:\ inetpub \ wwwroot \ LogonChecker \ wwwroot'。

new FileStream行..

  • 我为运行应用程序池的用户授予了该文件夹的完全控制权限
  • 我将应用程序池标识更改为网络服务,并且还授予了完全控制权限
  • 我启用了匿名身份验证ISS并尝试将其设置为“使用应用程序池标识”和“特定用户”(我为其指定了对该文件夹具有完全控制权限的用户)
  • 我尝试取消选中文件夹属性中的“只读”框,但每当我再次查看时,它都会重新检查...
  • 在完成上述每项更改后,我刷新了网站并回收了应用池

我在Windows 7上使用IIS 6.1。

1 个答案:

答案 0 :(得分:2)

据我所知,您需要为IIS_IUSRS设置该文件夹的权限,以便您的进程可以访问它。