【发布时间】:2012-07-17 20:42:02
【问题描述】:
我在 IIS 7.5 中有几个指向网络资源的虚拟目录。具体来说,这些文件夹包含 PDF 文件。我已授予用户对这些文件夹的权限,并且可以通过 Web 请求访问它们的内容,正如我所期望的那样。例如,http://mysite/dir1/test.pdf 完美适用于两个虚拟目录。但是,当我尝试展开其中一个虚拟目录(另一个工作正常)以查看子文件夹时,IIS 管理器几乎立即变得无响应。
我正在尝试在经典 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多一点。
【问题讨论】:
-
我们在谈论多少个文件?此代码是作为 IUSR 还是作为 authetnicate 用户运行? IUSR 或经过身份验证的用户是否有权访问 UNC 共享和文件夹?
标签: iis asp-classic filesystemobject iis-manager