0

我有一个代码可以在服务器目录上创建一个 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);
}
4

1 回答 1

2

那是因为您的用户试图同时写入同一个文件。
通过在文件名中添加诸如 orderID 之类的内容,使您的文件名独一无二。

string name = modDetail.order_detail_id.ToString() + ".xml";
string path = ArgenXmlOrderPath + "/" + name;
XDoc.Save(path);
于 2012-10-20T05:25:06.680 回答