我们最近在 Windows 2008 r2 服务器上将一个 asp.net 2.0 项目升级到 .net 4.0,我们发现的问题之一是对 UNC 共享文件夹的 File.Exists() 调用。它在 Windows 2003 服务器上的 .net 2 上运行良好。该代码的作用是使用 Windows 模拟来访问由 Web 服务创建的文件的共享文件夹。即使文件存在于刚刚由 Web 服务创建的共享文件夹中,似乎 File.Exists() 也会返回 false。现在我认为当本地代码尝试访问该文件时,Web 服务中的 File 对象可能不会关闭。那么如何使用 File.Exists 方法的 .net 4 实现来解决此问题,我尝试将线程设置为休眠几秒钟但没有帮助,无论如何这不是一个好的解决方案。
有任何想法吗?
更新:
好的,所以我添加了一个 while 循环来等待 Web 服务关闭文件。现在 File.Exits 在 while 循环期间返回 true。有趣的是,它在 asp.net 2.0 中运行良好。不确定 .net 4 是否有不同的实现或服务器差异导致这种不同的行为。