none
Propiedad static no mantiene el valor RRS feed

  • Pregunta

  • Hola,

    Estoy haciendo unos cambios en una aplicación ASP.Net MVC.

    Tengo el controlador noticias que hereda de la clase controlador, este a su vez hereda de Controller. En el controlador noticias tengo un par de propiedades estáticas, para compartir su valor entre las distintas invocaciones a las acciones, pero me encuentro con el problema de que en cada invocación a una acción, el valor de estas propiedades estáticas no se mantiene.

    Este es el código de la clase que hereda de Controller. (Tiene mas codigo pero para el ejemplo, este es suficiente)

    public class Controlador : Controller
        {
            private const string CLAVE_COOKIE = "mi_web";
            private const string CLAVE_IDUSUARIO = "Identificador";
        }
    


    Dejo aquí el código del controlador noticias. (Las variables estáticas se actualizan en otras acciones, estas crean unos ficheros en una carpeta temporal. Los ficheros se crean)

    public class NoticiasController : Controlador
    
        {
    
            private static Dictionary<string, List<DateTime>> cColEntradaIP = new Dictionary<string, List<DateTime>>();
            private static CacheNoticias CacheNoticias = new CacheNoticias(AppDomain.CurrentDomain.BaseDirectory + "Bin\\tmp\\");
            
            public ActionResult Control()
            {
                ViewBag.ControlIPs = cColEntradaIP.Count;
                ViewBag.ControlCache = CacheNoticias.NumeroElementosCacheados();
    
                return View(new PaginaAcercaDe());
            }
        }

    Cuando invoco la acción control, el resultado es el siguiente: "IPs: 0 Noticias Cacheadas: 0"

    No entiendo muy bien este comportamiento.

    ¿Se os ocurre alguna idea?

    Un saludo y gracias de antemano.


    Daniel Simal

    jueves, 24 de abril de 2014 17:16

Respuestas

  • Acabo de encontrar el error.

    Estaba escribiendo dentro de una carpeta (llamada tmp) que está ubicada dentro de la carpeta Bin, esto provoca que el IIS se reinicie y como es obvio pierde todos los datos que tiene en memoria.

    Un saludo,


    Daniel Simal

    • Marcado como respuesta Daniel Simal jueves, 24 de abril de 2014 19:53
    jueves, 24 de abril de 2014 19:53