Я использую этот код для загрузки файла на сервер (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.