我有一個web服務應用程序,它使用另一個應用程序來保存和加載一個xml文件。w3wp.exe(網絡服務用戶)阻止訪問文件
對文件進行三次訪問後,無法再次訪問該文件。如果我終止屬於NETWORK SERVICE用戶的w3wp.exe進程,則所有內容都會重新開始工作,但只有一次。
下面是保存和加載xml文件的代碼示例。
public void saveXmlFile(string filename)
{
if (vsqlschema == null)
{
Console.WriteLine("Tried export data without schema");
//TODO: Messagebox
return;
}
FileStream fs = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(vsqlSchema));
fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
serializer.Serialize(fs, vsqlschema);
}
catch (Exception e)
{
Console.WriteLine("IO Error: {0}", e.Message);
//TODO: Messagebox
}
finally
{
if (fs != null)
{
fs.Close();
fs.Dispose();
}
}
}
public XmlDocument loadXml(string filename)
{
//XmlReaderSettings xrs = new XmlReaderSettings();
//xrs.XmlResolver = null;
//xrs.DtdProcessing = DtdProcessing.Ignore;
XmlDocument xdoc = new XmlDocument();
try
{
//using (StringReader sr = new StringReader(filename))
//using (XmlReader reader = XmlReader.Create(sr, xrs))
using (XmlTextReader reader = new XmlTextReader(filename)){
xdoc.Load(reader);
reader.Close();
}
}
catch (XmlException xe)
{
errors.Add(string.Format("Line: {0}, Position: {1}::: {2}", xe.LineNumber, xe.LinePosition, xe.Message));
}
return xdoc;
}
任何想法是怎麼回事,什麼可以是這個
通過「文件無法訪問調用Stream.Flush()再一次「,你究竟是什麼意思?拒絕訪問?打開手柄?你有什麼例外嗎? – Basic 2013-04-22 19:25:28
加載文件返回null,因爲它已經被w3wp.exe打開 – user2307211 2013-04-22 19:42:41