Escribiendo visualización de las estadísticas a un archivo XML. Posibles problemas con la pérdida de recuento de datos?

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Hola He creado XML que contiene los códigos de propiedades y número de visualizaciones de página para que el código:

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

Creo que he encontrado que es posible debilidad con esto, hoy en día todos los contadores disapeared y todo empezó de cero.

Este es el código que comprueba la existencia de código en el archivo XML y, o bien añadir 1 o crear nueva etiqueta XML con 1.

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

Mis preguntas serían:

  1. ¿es posible que haya habido página abierta por otra persona al mismo tiempo y de archivos más consiguieron ser sobrescritos o de alguna manera reseted los datos?

  2. ¿hay alguna otra manera de cómo mantener el número de páginas por lo que si los visitantes no lo puedo restablecer en el futuro?

Gracias.

Fero

¿Fue útil?

Solución

Parece que está teniendo un problema de concurrencia.

bloquear la operación de escritura, pero entonces se debe ser conscientes de que su están creando un posible cuello de botella en su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top