目前我正在編寫windows服務來處理大量的xml文件並將xml文件中的信息保存到數據庫。有3臺機器運行指向相同共享位置的相同服務。在這個過程中,我總是得到File Not Found的異常,並且不知道如何解決這個問題。我嘗試從目錄中獲取所有文件,並根據計算機名稱重命名這些文件,並允許每臺計算機處理它自己的一組文件,但仍受到文件未找到異常的影響。任何人都可以告訴我解決這個問題的正確方法。併發讀寫文件
謝謝。
代碼
if (Directory.Exists(folder))
{
string pattern = ".xml";
string machineName = System.Environment.MachineName;
string[] files = Directory.GetFiles(folder, pattern, SearchOption.AllDirectories);
newExt = string.Format("{0}.{1}", machineName, newExt);
for (int i = 0; i < files.Length; i++)
{
if (files[i].Contains(machineName))
{
//replace this new extension
files[i].Replace(machineName + ".", "");
}
else
{
files[i] = ChangeExtension(files[i], newExt, true);
}
}
IEnumerable<string> sortedFiles = files.Where(f => !string.IsNullOrEmpty(f) && f.Contains(machineName))
.OrderBy(f => f, Sorter);
}
只是爲了排除明顯...你得到,如果該服務上運行的只有一臺機器未發現異常文件? – Teppic 2012-07-26 23:23:53
如果服務在1臺機器上運行,則沒有例外,系統工作正常。這個問題是由於這兩個機器捕獲的文件和處理相同的時間相同的快照 – 2012-07-27 00:01:50