Windows Server 2008 R2 Standard EditionでWindowsサービスを実行しています。これはバイナリファイルを処理し、処理されたファイルを同じボリューム上の別のフォルダに移動する.NET 4.0アプリケーションです。ファイルシステムはNTFSです。問題は、次のコードである:D:\src_dir\fileX.bin
とD:\dst_dir\fileX.bin
:File.Move()操作でエラーなしで元のフォルダからファイルを削除できない
try
{
if (File.Exists(srcFileName))
{
File.Move(srcFileName, dstFileName);
}
}
catch (Exception ex)
{
log.Error("Failed to move file.", ex);
}
パスsrcFileName
とdstFileName
は次の形式を持っています。 log
はlog4netロガーオブジェクトです。ファイルは、処理のために、File.ReadAllBytes(srcFileName)
で読み取られます。
コードはほとんどの場合、期待どおりに動作しますが、場合によっては、コピー先フォルダに移動する代わりに一部のファイルがコピーされ、ログにエラーが記録されないことがあります。ログを見ると、すべて正常に動作しているように見えますが、一部のファイルはソースフォルダと宛先フォルダの両方に表示されます。 RAM使用量が30 GB(使用可能な32 GBから)になり、平均ディスクキューが2を超えたときに発生するように見えるため、この問題はサーバーの負荷に関連しているようです。
この問題の原因は何ですか動作、特に移動が失敗した場合の例外の存在がありません。移動操作が正常に完了したことを確認する方法はありますか?
常に同じフォルダと同じユーザーですか、特定のユーザーまたはフォルダにのみ問題がありますか? – Jonny
@ジョニーこれは常に同じユーザーと同じ2つのフォルダです。サービスはローカルシステムアカウントで実行されています。 – elojd