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 次,所以我们不确定从这里到哪里去。
谢谢!
如评论中所述,这是由网络状况不佳引起的,我们已将文件夹创建移至实际的网络服务器本地驱动器上,现在一切正常
我们有一个 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 次,所以我们不确定从这里到哪里去。
谢谢!
如评论中所述,这是由网络状况不佳引起的,我们已将文件夹创建移至实际的网络服务器本地驱动器上,现在一切正常