我在asp.net mvc中開發了一個網站,它從xml文件中讀取以顯示一些數據。這個文件由我的後端進程定期更新,這個進程構建了這個xml文件,最後通過ftp將它上傳到我的webhost。另一個進程使用的文件asp.net
這一直工作正常,但在上週左右,我已經陷入了一個問題。我得到了asp.net異常「正被另一個進程使用的文件」。我不知道這可能是什麼,我覺得很奇怪。我幾個月來甚至沒有在我的代碼中改變過任何東西。
下面你會發現,我用我的序列化XML文件的典型方法:
public static IEnumerable<FStreamObject> GetStreams()
{
using (FileStream fs = new FileStream(HttpRuntime.AppDomainAppPath+"/ff.xml", FileMode.Open))
{
XmlReader ffXML = XmlReader.Create(fs);
XmlSerializer ser = new XmlSerializer(typeof(FXmlModel));
var sList = (FXmlModel)ser.Deserialize(ffXML);
fs.Close();
return sList.FSObjectList.OrderByDescending(x => x.Cash);
}
}
您可以使用Process Explorer http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx找到哪個進程使用您的文件(http://windowsxp.mvps.org/processlock.htm) – Giedrius 2012-07-23 12:36:33
ProcessExplorer的+1。將來會爲你節省很多時間。 – 2012-07-23 12:39:00