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 に答える