Foros del Web » Programando para Internet » ASPX (.net) »

Problema con caducidad cache

Estas en el tema de Problema con caducidad cache en el foro de ASPX (.net) en Foros del Web. Buenos días desde España Foreros !!! Ufff, hace tiempo que no entro aqui... en fin, espero puedan ayudarme con el problema que tengo, por que ...
  #1 (permalink)  
Antiguo 06/07/2009, 01:38
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Problema con caducidad cache

Buenos días desde España Foreros !!!

Ufff, hace tiempo que no entro aqui... en fin, espero puedan ayudarme con el problema que tengo, por que la verdad no sé como solucionarlo.

La cuestión es que tengo una propiedad, que comprueba si tengo un objeto de tipo XmlDocument en caché y si no existe, lo cargamos en la caché.

Pero el problema está en que lo hace perfecto, pero al cabo de unas horas, y durante unos largos minutos (media hora - una hora), el objeto parece que no existe en caché y que tampoco se crea.

Tal y como tengo la propiedad... si no existe, lo creo, por lo que no entiendo por que desaparece de la cache... Quizás alguien con experiencia en Cache de .NET me pueda orientar y decirme que me falta o que tengo mal...

Aqui les dejo la propiedad, la cual a veces es Nothing y no entiendo por qué:

Código:
        Private Function GetSetXml() As XmlDocument

            Dim pathFicheroXML As String = Server.MapPath("") & "/" & GetUrlRelativa()
            Dim objDependenciaCache As New Caching.CacheDependency(pathFicheroXML & "/xmlConfiguracion.xml")

            Try

                Dim tiempoActualizacionCacheMinutos As String = ConfigurationManager.AppSettings("tiempoActualizacionCacheMinutos")

                If ((HttpContext.Current.Cache.Item("objDocumentoXml") Is Nothing)) Then

                    Dim objDocumentoXml As System.Xml.XmlDocument = Utils.IO.XML.GetFicheroXml(pathFicheroXML & "/xmlConfiguracion.xml")
                    HttpContext.Current.Cache.Insert("objDocumentoXml", objDocumentoXml, objDependenciaCache, DateTime.Now.AddMinutes(Double.Parse(tiempoActualizacionCacheMinutos)), TimeSpan.Zero, Caching.CacheItemPriority.High, New Caching.CacheItemRemovedCallback(AddressOf CacheEliminada))
                End If

                Return DirectCast(HttpContext.Current.Cache.Item("objDocumentoXml"), XmlDocument)

Catch..............
__________________
Charlie.
  #2 (permalink)  
Antiguo 06/07/2009, 04:09
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Problema con caducidad cache

Al final he cambiado el código y lo he dejado asi (Por favor, díganme si es óptimo y hace lo que espero que haga, que es que cuando se elimine la caché, por modificar el fichero, es que se vuelva a generar otra vez !!!)

Código:
        Private Function GetSetXml() As XmlDocument

            Dim pathFicheroXML As String = Server.MapPath("") & "/" & GetUrlRelativa() & "/xmlConfiguracion.xml"

            Try                
                If (Cache.Item("objDocumentoXml") Is Nothing) Then

                    Dim objDocumentoXml As System.Xml.XmlDocument = Utils.IO.XML.GetFicheroXml(pathFicheroXML)
                    Cache.Insert("objDocumentoXml", objDocumentoXml, New System.Web.Caching.CacheDependency(pathFicheroXML), Cache.NoAbsoluteExpiration, TimeSpan.Zero, Caching.CacheItemPriority.NotRemovable, New Caching.CacheItemRemovedCallback(AddressOf CacheEliminada))
                End If

                Return DirectCast(HttpContext.Current.Cache.Item("objDocumentoXml"), XmlDocument)

            Catch exSinsa As ExcepcionesSINSA.ExcepcionesSINSA
                exSinsa.InsertarDesOrigen(Me.GetType(), MethodBase.GetCurrentMethod())
                exSinsa.LogException(0, 54, 40, "ClsPaginaBase.vb", "ClsPaginaBase", "03", System.Net.Dns.GetHostName, Me.IPCliente)

                Return Nothing

            Catch ex As Exception
                Dim objEx As New ExcepcionesSINSA.ExcepcionesSINSA(Me.GetType(), MethodBase.GetCurrentMethod(), _
                                                                   ExcepcionesSINSA.CodigoErrorTabla.ErrorAplicacion, ex, _
                                                                   TipoGravedad.ErrorEjecucion, _
                                                                   ex.Message, TipoError.Pagina, _
                                                                   "Error Cargando XML.", CodigoEstadoPag.SigueEjecucion)
                objEx.LogException(0, 54, 40, "ClsPaginaBase.vb", "ClsPaginaBase", "03", System.Net.Dns.GetHostName, Me.IPCliente)

                Return Nothing
            End Try
        End Function
        Private Sub CacheEliminada(ByVal keyCache As String, ByVal objEnCache As Object, ByVal motivoEliminacion As Caching.CacheItemRemovedReason)

            Me.GetSetXml()
        End Sub
__________________
Charlie.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:14.