我有一个代码在服务器目录上创建一个xml文件, 这段代码就像魅力一样,直到用户在同一时间处理此代码。 快一毫秒的用户将成功生成一个文件而另一个将丢失它。 请帮帮我们。
public static void XmlOrder(arg_order mod, string NewAddress)
{
XmlDocument XDoc = new XmlDocument();
XmlDeclaration xde = XDoc.CreateXmlDeclaration("1.0", "", "");
XDoc.AppendChild(xde);
XmlElement XElemRoot = XDoc.CreateElement("Digital_Order");
XElemRoot.SetAttribute("xmlns", "");
XDoc.AppendChild(XElemRoot);
foreach (arg_order modDetail in mod.arg_orders) {
XmlElement Xsource = XDoc.CreateElement("Document");
XElemRoot.AppendChild(Xsource);
XmlElement XTemp = XDoc.CreateElement("wt_web_Id");
XTemp.InnerText = modDetail.order_detail_id.ToString();
Xsource.AppendChild(XTemp);
XTemp = XDoc.CreateElement("wt_addr");
XTemp.InnerText = modCompany.qad_no;
Xsource.AppendChild(XTemp);
}
//naming and path
string name = arg_order_detail.FindAll().Count.ToString() + ".xml";
string path = ArgenXmlOrderPath + "/" + name;
XDoc.Save(path);
}
答案 0 :(得分:2)
这是因为您的用户正在尝试同时写同一个文件 通过将orderID之类的内容添加到文件名中,使文件名唯一。
string name = modDetail.order_detail_id.ToString() + ".xml";
string path = ArgenXmlOrderPath + "/" + name;
XDoc.Save(path);