访问路径 wwwroot 被拒绝,即使我有权限
Access to path wwwroot is denied even though I have permission
我正在使用此代码将文件上传到 (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: Access to the path 'C:\inetpub\wwwroot\LogonChecker\wwwroot' is denied.
在 new FileStream
行..
- 我为用户 运行 应用程序池
授予了对该文件夹的完全控制权限
- 我将应用程序池标识更改为网络服务并授予完全控制权限
- 我启用了匿名身份验证 ISS 并尝试将其设置为 "use Application Pool Identity" 和 "specific user"(为此我指定了一个对该文件夹具有完全控制权限的用户)
- 我尝试取消选中文件夹属性中的 "read only" 框,但每当我再次查看时,它都会重新选中...
- 在进行上述每项更改后,我刷新了网站并回收了应用程序池
我在 Windows 7.
上使用 IIS 6.1
据我所知,您需要为 IIS_IUSRS 设置该文件夹的权限,以便您的进程可以访问它。
我正在使用此代码将文件上传到 (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: Access to the path 'C:\inetpub\wwwroot\LogonChecker\wwwroot' is denied.
在 new FileStream
行..
- 我为用户 运行 应用程序池 授予了对该文件夹的完全控制权限
- 我将应用程序池标识更改为网络服务并授予完全控制权限
- 我启用了匿名身份验证 ISS 并尝试将其设置为 "use Application Pool Identity" 和 "specific user"(为此我指定了一个对该文件夹具有完全控制权限的用户)
- 我尝试取消选中文件夹属性中的 "read only" 框,但每当我再次查看时,它都会重新选中...
- 在进行上述每项更改后,我刷新了网站并回收了应用程序池
我在 Windows 7.
上使用 IIS 6.1据我所知,您需要为 IIS_IUSRS 设置该文件夹的权限,以便您的进程可以访问它。