2012-03-05 164 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保護這個目錄 - 出於安全目的將不會提供讀取請求。

所以 - 你不應該在這個文件夾中存儲圖像,只有數據庫文件。