ネットワーク共有からファイルを読み取ると、作成時刻が最後の書き込み時刻に更新されます。これにより、System.Configuration.Configurationで問題が発生します。これは、ファイルが変更されたと見なされ、例外がスローされるためです(構成ファイルが別のプログラムによって変更された)。回避策は、作成時間を事前に手動で最後の書き込み時間に設定することです。しかし、これが既知の問題であるかどうかを知りたいのですが。
ここにいくつかのテストコードがあります:
string filePath = @"X:\SomeFile.txt";
FileInfo fileInfo = new FileInfo(filePath);
DateTime creationTimeBeforeRead = fileInfo.CreationTimeUtc;
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] result = new byte[fileStream.Length];
fileStream.Read(result, 0, (int)fileStream.Length);
fileStream.Close();
fileInfo.Refresh();
DateTime creationTimeAfterRead = fileInfo.CreationTimeUtc;
問題が.netにあるのか、Windows APIにあるのか、サーバー側にあるのかわかりません。誰かが何か洞察を持っていますか?