Schreiben Betrachtung der Statistiken zu XML-Datei. Mögliche Probleme mit Zähldaten zu verlieren?

StackOverflow https://stackoverflow.com/questions/2273930

  •  20-09-2019
  •  | 
  •  

Frage

Hallo Ich habe XML erstellt, welche für Eigenschaften und Anzahl der Seiten Viewings für diesen Code enthält:

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

Ich glaube, ich kann Schwäche mit dieser gefunden haben, heute alle Zähler disapeared und alle von Grund auf neu gestartet.

Dies ist der Code, der prüft, ob Code Existenz in XML-Datei und entweder +1 hinzuzufügen oder mit 1 neuem XML-Tag erstellen.

        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"));

Meine Fragen wären:

  1. ist es möglich, dass es Seite von jemand anderem in der gleichen Zeit und Datei nur bekam überschrieben oder irgendwie die Daten geöffnet war reseted?

  2. gibt es eine andere Art und Weise, wie Anzahl, wenn die Besucher der Seite zu halten, damit es in Zukunft zurückgesetzt würde nicht?

Danke.

Fero

War es hilfreich?

Lösung

Es scheint, dass Sie ein Concurrency Problem haben.

Sie könnten sperren den Schreibvorgang , aber dann müssen Sie beachten Sie, dass Ihr einen möglichen Engpass bei Ihnen Anwendung erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top