0

您好,我创建了 XML,其中包含该代码的属性代码和页面查看次数:

<?xml version="1.0" encoding="utf-8"?>
<data>
    <nehnutelnost code="BSPO066P">35</nehnutelnost>
     <nehnutelnost code="PMDM029P">4</nehnutelnost>
</data>

我想我已经找到了可能的弱点,今天所有的柜台都消失了,一切都从头开始。

这是检查 XML 文件中是否存在代码并添加 +1 或使用 1 创建新 XML 标记的代码。

        int intSeenCount = 0;
        XDocument xmlSeenCount = new XDocument();
        xmlSeenCount = XDocument.Load(Server.MapPath(@"App_Data\lozjoCounts.xml"));

        XElement xmlElement = xmlSeenCount.XPathSelectElement("data/nehnutelnost[@code = '" + strCisloZakazky + "']");

            if (xmlElement == null)
            {
                xmlElement = (new XElement("nehnutelnost",
                                                        new XAttribute("code", strCisloZakazky),
                                                        ++intSeenCount));
                xmlSeenCount.Element("data").Add(xmlElement);
            }
            else
            {
                intSeenCount = (Convert.ToInt32(xmlElement.Value) + 1);
                xmlElement.Value = intSeenCount.ToString();
            }
            xmlSeenCount.Save(Server.MapPath(@"App_Data\lozjoCounts.xml"));

我的问题是:

  1. 是否有可能其他人同时打开了页面并且文件刚刚被覆盖或以某种方式重置了数据?

  2. 如果页面访问者有任何其他方法可以保留数字,以便将来不会重置?

谢谢你。

费罗

4

1 回答 1

0

看来您遇到了并发问题。

您可以锁定写入操作,但您必须意识到您正在为您的应用程序创建一个可能的瓶颈。

于 2010-02-16T15:39:31.760 回答