我有一个FileHelper
类包装File.Copy
并在WinForms .NET 4.5.1应用程序中发生异常时执行一些日志记录:
public static class FileHelper
{
public static bool TryCopy(string source, string destination, bool overwrite)
{
try
{
File.Copy(source, destination, overwrite);
return true;
}
catch(Exception ex)
{
log.Error($"Copying file from {source} to {destination} failed.", ex);
return false;
}
}
}
运行FileHelper.TryCopy
的工具将文件共享中的文件复制到本地服务器。该工具使用TPL,因此可能有多个任务/线程调用此方法。最近,它开始出现这个错误:
将文件从FileShare复制到本地服务器失败。 ' System.IO.IOException:连接到系统的设备无法正常运行。 在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) 在System.IO.File.InternalCopy(String sourceFileName,String destFileName,Boolean overwrite,Boolean checkHost) 在System.IO.File.Copy(String sourceFileName,String destFileName,Boolean overwrite) at MyNameSpace.MyTool.Utilities.IO.FileManager.TryCopy(String source,String destination,Boolean overwrite)in .. \ Utilities \ IO \ FileHelper.cs:line 21
我已经在线调查并找到了一些建议:检查驱动程序,检查可能会锁定文件共享的陈旧会话,等等。我仍然不完全确定是什么原因引起的。我可以在应用程序方面做些什么?重试?节流?