【问题标题】:IIS Permissions in the App_data FolderApp_data 文件夹中的 IIS 权限
【发布时间】:2012-03-23 10:29:56
【问题描述】:

我正在开发一个应用程序,它可以上传一些图像,然后显示它们。

图像存储在类似这样的结构中:

\App_Data\files\0d10e5c1-13ad-4493-97e7-dc4b09dc15e1\2012\3\4

如您所见,文件按 companyID(Guid)、年、月和日分段。

问题是当我想显示图像时,我得到一个错误“访问路径被拒绝” 有趣的是,图像可以毫无问题地上传。 我在文件夹上尝试了您可以想象的任何权限组合,但仍然没有。

这快把我逼疯了!有什么想法吗?

一些额外的信息:

应用程序是 ASP.NET MVC 3 项目,IIS 是 7.5

我正在使用这样的控制器显示图像:

    [HttpGet]
    public ActionResult show(Guid id)
    {
        var results = productImagesRepository.showProductImage(id);
        return File(results.imageNameAndPath, results.contentType);
    }

研究,我发现了这个:

asp.net mvc app_data folder

所以我尝试在 APP_DATA 之外创建一个新的文件夹,但结果是一样的。

【问题讨论】:

  • 你能举一个 results.imageNameAndPath 值的例子吗?
  • results.imageNameAndPath = "D:\\Development\\projects\\theProject\\source\\tdbCore\_FileStore\\Files\\0d10e5c1-13ad-4493-97e7-dc4b09dc15e1\\2012\ \3\\5\\20d20d84-76de-4193-98ab-f18189cfec6d

标签: asp.net asp.net-mvc-3 iis-7 permissions


【解决方案1】:

您确定上传文件后正确关闭和处理了吗? IIS 可能会维护您没有这样做的文件锁定。只是猜测,因为我看不到您的上传或与文件相关的其他代码。

一种可能的快速检查方法是退回 IIS,这将释放所有文件锁定,如果您可以查看它们,则表明存在文件锁定问题。

【讨论】:

    【解决方案2】:

    App_Data 文件夹被指定为为您的网站存储数据库的文件夹。 IIS 保护此目录 - 出于安全目的,不会处理读取请求。

    所以 - 你不应该在这个文件夹中存储图像,只存储数据库文件。

    【讨论】:

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