【问题标题】:UnauthorizedAccessException when saving file, but can create a directory保存文件时出现UnauthorizedAccessException,但可以创建目录
【发布时间】:2017-12-10 11:14:00
【问题描述】:

我正在尝试将文件保存到磁盘但我得到 UnauthorizedAccessException。 该错误表明我必须获得对该文件夹的正确权限,并且我已经尝试了我能找到的所有可能的用户,但它不起作用。

尝试了以下用户

  • 网络
  • 网络服务
  • IUSR
  • IUSR_[计算机名]

并且在它不工作的情况下获得全部权利。

我发现真正奇怪的是,我在尝试保存文件之前创建了一个目录,并且效果很好,但在尝试将文件保存到该新目录时,我得到了 UnautorhizedAccessException。

代码如下:

    [HttpPost]
    public ActionResult Images(HttpPostedFileBase file, string boatId)
    {
        if (file.ContentLength > 0)
        {
            var fileName = Path.GetFileName(file.FileName);
            var path = Path.Combine(Server.MapPath("~/Content/Images/" + boatId));
            Directory.CreateDirectory(path);
            file.SaveAs(path);

        }
        return View($"Filen på {boatId} har laddats upp");
    }

对我所缺少的有什么想法吗?

【问题讨论】:

  • 您可以尝试为IIS_IUSRS用户添加权限!通过添加 IUSR 和 IIS_IUSRS 为我解决了这个问题。
  • @TeamKitsune 嗨,添加的这些用户和他们的全部权限仍然无法使用。如果有任何改变,我正在使用 IIS Express。
  • 您能否验证您用作应用程序池标识的任何内容实际上都在计算机上的 IIS_IUSERS 组中?
  • @TravisActon 原来我试图保存路径而不是文件:-)

标签: c# model-view-controller asp.net-mvc-5


【解决方案1】:

原来我试图做的是保存文件夹而不是文件,我忘记将文件名与路径结合起来。

将保存部分更改为以下内容:

file.SaveAs(Path.Combine(path, fileName));

这为我解决了整个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2015-06-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多