Доступ к пути wwwroot запрещен, хотя у меня есть разрешение - PullRequest
0 голосов
/ 04 мая 2018

Я использую этот код для загрузки файла на сервер (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 и попытался установить для нее «использование идентификатора пула приложений» и «конкретного пользователя» (для которого я указал пользователя с полными правами доступа к папке)
  • Я пытался снять флажок «только для чтения» в свойствах папки, но всякий раз, когда я смотрю снова, он перепроверяется ...
  • Я обновил сайт и переработал пул приложений после внесения каждого из вышеуказанных изменений

Я использую IIS 6.1 в Windows 7.

1 Ответ

0 голосов
/ 04 мая 2018

Насколько я помню, вам нужно установить разрешения для этой папки для IIS_IUSRS, чтобы ваш процесс мог получить к ней доступ.

...