Directory.GetFiles 方法尝试从 Win2008R2 VMServer 上的 UNC 文件夹共享(NTFS 磁盘)搜索 Word 文档时遇到了一个奇怪的问题。该共享在父文件夹中包含超过 10K 文件,在子目录中包含 75K 文件。
在 Win2003 Server 中一切正常。当迁移到 Win2008R2 服务器时,WinForms 应用程序会冻结此方法,并且需要将近 13 分钟才能从通过下载速度带宽为 1Mbps(不是吞吐量)的 VPN 网络连接到文件共享的客户端计算机上打开单个文件。
经过搜索和研究,我们发现 Windows Search 服务没有打开,服务已启动,共享已被索引。我们看到了性能改进,使用 GetFiles 方法打开文件所需的时间从 13 分钟降至 3 分钟。
但这并不一致。在带宽远低于 1MBPS(例如 0.5 MBPS)的白天时间,打开文档的时间跨度再次介于 8-12 分钟之间。
在这一点上,我们不确定是哪一个导致了问题?
不可能的解决方案:1)创建多个目录并组织文件。2)增加带宽。3) 使用直接文件路径而不是 Directory.GetFiles/EnumerateFiles
非常感谢任何帮助。谢谢!