我的 Web 应用程序上有一个简单的文件选择器,它使用 Directory.GetFiles 和 Directory.GetDirectories 来生成 UI。这在我的本地主机上完美运行,但是当我将它上传到我的 Windows Server 2003 主机时,我只能看到文件 - 在同一目录上,GetFiles 有效,但 GetDirectories 无效。
代码非常简单 - 字符串 dir 由 Server.MapPath 调用创建,然后:
List<string> dirs = Directory.GetDirectories(dir).ToList();
List<string> files = Directory.GetFiles(dir).ToList();
我已经尝试了所有我能想到的安全方面的事情;甚至可以让“每个人”完全访问 Web 根目录中的所有目录,即使这样也没什么区别。
因此,如果问题不在于安全性,我将非常感谢一些建议以尝试更多尝试!
更新:我很愚蠢 - 吐出 HTML 的代码包含一些非常古老的测试代码,这些代码对本地没有任何影响,因此没有被注意到和删除,但这导致服务器上的每个目录都被忽略!它以前如何?
if (!subDir.Contains(".")) { ...
在服务器上,所有站点都位于由其域命名的文件夹中 - 在本地,它们不是。我==愚蠢。对不起大家!