【问题标题】:Unauthorized Access exception when i try to create a directory当我尝试创建目录时出现未经授权的访问异常
【发布时间】:2013-05-30 10:15:13
【问题描述】:

我有一个例外Unauthorized Access 当我这样做时:

if (fileurl != null && fileurl.ContentLength > 0)
                {
                 var fileName = Path.GetFileName(fileurl.FileName);
                // var path = AppDomain.CurrentDomain.BaseDirectory + fileName;
                 var path = Path.Combine(@"C:\Projets", fileName);
                 fileurl.SaveAs(path);
                 string path2 = Path.GetFileNameWithoutExtension(path);
                 Directory.CreateDirectory(path2);

我保存了一个压缩文件fileurl.SaveAs(path);,我想在同一路径中创建一个新目录。我验证了路径path2,没问题。但是指令Directory.CreateDirectory(path2);失败,出现Unauthorized Access的异常。

为什么会这样?我该如何解决?

【问题讨论】:

  • 您是否打算创建一个与文件(您刚刚保存的文件)同名的目录(文件夹)?

标签: c# asp.net asp.net-mvc file directory


【解决方案1】:

听起来像是权限问题。确保您的用户具有读/写文件权限。

【讨论】:

  • 否,请确保 fileurl.SaveAs(path) 具有写入权限。尝试将该文件权限更改为 777,或上面的目录
  • 好的,当然。标记我试图提供帮助。现在感觉更像 StackExchange。
  • 好的。接受的答案就是我所说的。权限问题。感谢不应该投票的人。真的很喜欢你在 stackexchange 上。
  • @Eric,我相信你做到了,尽管我没有更详细地更明确地回答。我没有对你投反对票,而是对你投了赞成票。我对其他问题的回答偶尔会被否决,而这些人通常会给出原因。给出强制否决投票的理由可能是件好事。顺便说一句,这是另一个话题,您可能想向 stackoverflow 的产品负责人提出。
【解决方案2】:

您的意思是将路径设置为 C:\Projets 还是 C:\Projects ? 您可能会在不存在的路径上获得未经授权的访问

【讨论】:

  • @Lamloumi2 他说你可能用错了路径。
【解决方案3】:

您将其标记为 ASP.NET,因此您不能将其用作控制台或 Windows 窗体应用程序。

您的 Web 应用程序在服务器端运行并使用不同的用户帐户。

您需要授予应用程序池运行用户权限,而且由于这是 Web 应用程序,您需要写入您网站下的目录或应用程序池用户可访问的另一个虚拟目录。

【讨论】:

    【解决方案4】:

    您需要检查运行您的网络应用程序的应用程序池的身份。默认标识对 C:\Projets 等没有权限。您需要明确授予具有写入权限的身份的用户或用户组到 C:\Projets。

    【讨论】:

      猜你喜欢
      • 2016-12-14
      • 2014-07-01
      • 2019-06-11
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多