2012-07-17 56 views
0

我有幾個虛擬目錄在IIS 7.5中指向網絡資源。具體來說,這些文件夾包含PDF文件。我已經授予用戶對這些文件夾的權限,他們的內容可以通過網絡請求訪問,就像我期望的那樣。例如,http://mysite/dir1/test.pdf適用於兩個虛擬目錄。但是,當我嘗試擴展其中一個虛擬目錄(其他工作正常)以查看子文件夾時,IIS管理器幾乎立即變得無響應。IIS 7.5中的虛擬目錄是否存在文件夾大小限制?

我試圖列出傳統ASP頁上的虛擬目錄中的所有PDF的文件名。

Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 
filepath = Server.MapPath("/resources/myfolder") 
Set folder = objFSO.GetFolder(filepath) 
For Each file in folder.Files 
    If file.Type = "PDF File" Then 
     Response.Write("<p>" & file.Name & "</p>") 
    End If 
End If 

Set folder = Nothing 
Set objFSO = Nothing 

在另一頁上,我使用相同的代碼來列出另一個虛擬目錄的內容。但是,這個其他目錄(與IIS管理器一樣)會因沒有響應而導致問題。它會導致整個網站無響應,我必須回收到應用程序池才能讓它恢復。

用於訪問這些資源的用戶帳戶的有效權限是相同的。所有文件都可以訪問,我已經通過硬編碼fso.FileExists(filepath & filename)確認它們存在。我也確認文件夾對象存在,它的屬性被設置。在這兩種情況下,即使是folder.Files.Count都已正確設置。問題是調用迭代通過folder.Files會導致無響應的行爲。是否有文件大小和/或文件夾大小限制?我看到兩個目錄之間唯一的區別是文件的數量,因此文件夾的大小。不起作用的只有1GB以上。

+0

我們剛纔討論了多少個文件?此代碼是否以IUSR身份運行或作爲認證用戶運行? IUSR或經過身份驗證的用戶是否有權訪問UNC共享和文件夾? – AnthonyWJones 2012-07-17 21:13:41

回答

0

我不知道存在的大小限制。我會假設限制是我的機器存儲的大小。至於顯示文件夾內所有文件的列表,當列表變長時,您可能會遇到一些速度問題。獲取文件路徑等將導致需要更多資源的文件I/O操作。我會設計我的應用程序,每當用戶發佈新的PDF時,我將文件詳細信息(名稱,位置)存儲在數據庫中,然後將該圖像放入該文件夾中。 這樣,當用戶想要檢索文件時,我做了一個文件抓取(這是文件I/O並獲取更多資源),如果我只想顯示文件列表,我從數據庫表中讀取它將超過4列寬,數據庫可以輕鬆處理數百萬行的讀取。