将查看统计信息写入 XML 文件。丢失数据计数可能出现的问题?
Posted
技术标签:
【中文标题】将查看统计信息写入 XML 文件。丢失数据计数可能出现的问题?【英文标题】:Writing viewing stats to XML file. Possible problems with losing data count? 【发布时间】:2010-02-16 15:26:29 【问题描述】:您好,我创建了 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】:您似乎遇到了并发问题。
您可以lock 写入操作,但您必须意识到您正在为您的应用程序创建一个可能的瓶颈。
【讨论】:
以上是关于将查看统计信息写入 XML 文件。丢失数据计数可能出现的问题?的主要内容,如果未能解决你的问题,请参考以下文章