Web 服务器访问网络驱动器时断断续续 System.IO.DirectoryNotFoundException

Intermittent System.IO.DirectoryNotFoundException on web server accessing network drive

我们有一个 Web 服务器 运行ning hangfire 间歇性地轮询共享网络驱动器,路径示例为:

\SXXXXX\XXXXX$\XXX\ 

间歇性地抛出 System.IO.DirectoryNotFoundException 但是目录是由同一段代码创建的。

它似乎 运行 正常 8/10 次并且在 2 次它抛出异常它实际上删除了文件夹如果它是空的这是代码 运行s 在点之后异常?

这是一个示例代码块:

 var downloadDirectory = "*OMITTED*
        Directory.CreateDirectory(downloadDirectory);
        TestDirectoryCreatedOnNetwork(downloadDirectory);


var dir = new DirectoryInfo(downloadDirectory);

        if (dir.GetFiles().Count() == 0)
        {
            Directory.Delete(downloadDirectory);
            return false;
        }

谷歌搜索让我们想到:Directory.CreateDirectory() 可能会受到延迟的影响,因此我们添加了以下内容:

private static void TestDirectoryCreatedOnNetwork(string directory)
    {
        int waitCount = 10;
        do
        {
            if (Directory.Exists(downloadDirectory))
            {
                break;
            }

            Thread.Sleep(10000); // sleep 100ms
            waitCount--;
            if (waitCount <= 0)
            {
                throw new Exception("Failed to create directory");
            }
        } while (true);
    }

我们知道该代码有效,因为它 运行 是 8/10 次,所以我们不确定从这里到哪里去。

谢谢!

如评论中所述,这是由网络状况不佳引起的,我们已将文件夹创建移至实际的网络服务器本地驱动器上,现在一切正常