App_data文件夹中的IIS权限

时间:2012-03-05 22:54:39

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

我正在处理上传某些图片的应用程序,然后显示它们。

图像存储在与此类似的结构中:

\程序App_Data \文件\ 0d10e5c1-13ad-4493-97e7-dc4b09dc15e1 \ 2012 \ 3 \ 4

如您所见,文件按公司ID(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之外创建一个新的forlder,但结果是一样的。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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