2012-03-05 97 views
0

我正在上传一些图像,然后显示它们的应用程序。App_data文件夹中的IIS权限

的图像是存放在结构与此类似:

\程序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,但结果是一样的。

+0

你可以给一个results.imageNameAndPath值的例子吗? –

+0

results.imageNameAndPath =“D:\\ Development \\ projects \\ theProject \\ source \\ tdbCore \\ _ FileStore \\ Files \\ 0d10e5c1-13ad-4493-97e7-dc4b09dc15e1 \\ 2012 \\ 3 \\ 5 \ \ 20d20d84-76de-4193-98ab-f18189cfec6d – epaulk

回答

0

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

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

2

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

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