我们有一个运行挂接的Web服务器,该网络间歇性地对共享网络驱动器进行了以下路径示例:
的路径驱动器\SXXXXXXXXXX$XXX
间歇性地抛出system.io.directorynotfoundexception的
,目录是由同一代码创建的。
它似乎可以运行8/10次,并且在2次下抛出异常,如果其空的代码是在异常之后运行的代码,则实际上会删除该文件夹?
这是一个示例代码块:
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次,因此我们不确定从这里去哪里。
谢谢!
如评论中所述,这是由于网络条件不佳而引起的,我们已经将文件夹创建移至实际的Web服务器本地驱动器上,现在一切正常