【问题标题】:Deleting file from static method error: Access to the path ... is denied从静态方法错误中删除文件:访问路径...被拒绝
【发布时间】:2011-10-01 16:51:28
【问题描述】:

我的主机发誓 ASPNet 帐户可以完全访问一些照片所在的文件夹。我正在尝试删除一张照片,这是 C#:

public static bool Delete(string pathAndFilename)
{
    var path = HttpContext.Current.Server.MapPath(pathAndFilename);
    File.Delete(path);
}

(在完整的代码中,有一个 try catch 和 bool 返回值)

更新:这也发生在本地开发盒上。这是我能够尝试的。

我将当前用户放入ViewBag,并在页面上显示。

ViewBag.Account = HttpContext.User.Identity.Name;

在开发框中,它显示了我当前登录的用户帐户,它可以完全控制项目中的每个文件和文件夹。

我检查了打开的文件,我要删除的照片没有打开。

将尝试捕获更详细的异常。感谢到目前为止的想法!

【问题讨论】:

  • 放心,这与静态方法无关
  • 谢谢...我可以排除。欣赏。
  • 访问被拒绝也意味着另一个进程正在使用该文件。有两件事发生同样的错误,请确保您正在处理访问该文件的Streams。
  • UnauthorizedAccessException怎么样?

标签: c# .net asp.net exception-handling delete-file


【解决方案1】:

IUSR?那应该是 NETWORK SERVICE 或 ASPNET 帐户(取决于 IIS 的版本)

编辑:也没有理由给予 IUSR 完全访问权限。它只需要读取权限。

【讨论】:

  • 只有读取权限才能删除文件?
  • 只为 IIS 用户读取,该用户不是运行其应用程序的用户。
  • 是的,对不起...我是说 ASPNet 用户,该死的阅读障碍!
  • 检查HttpContext.Current.User.Identity.Name 中的内容。我高度怀疑它是 NETWORK SERVICE 而不是 ASPNET。
【解决方案2】:

如果您使用完全限定路径 ("C:\foo") 或者如果字符串无法识别为路径,则会引发 HttpException。

如果您能准确描述您所看到的内容,将会很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多