Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Cache knallt hin und wieder ...

Letzter Beitrag 02-04-2007 23:14 von roni_schuetz. 7 Antworten.
Seite 1 von 1 (8 Treffer)
Beiträge sortieren: Zurück Weiter
  • 10-25-2006 13:26

    Cache knallt hin und wieder ...

    Servus,

    ich habe hier ein ganz seltsames Phänomen, was unregelmäßig in einer Webanwendung auftritt, und was ich nicht ganz nachvollziehen kann. Ich speichere Guids mit einem eindeutigen Key im Cache. Vor dem Auslesen prüfe ich, ob das Objekt vorhanden ist, z.B.:

    if (Bll.Utilities.Caching.ItemExists(string.Format("LanguageId:{0}", key)))
    {
        return (Guid)context.Cache[string.Format("LanguageId:{0}", key)];
    }

    ItemExists schaut wie folgt aus:

     public static bool ItemExists(string key)
    {

        bool returnValue = false;
        bool.TryParse((string)ConfigurationManager.AppSettings["CachingEnabled"], out returnValue);

        if (returnValue)
        {
            if (HttpContext.Current.Cache[key] != null)
                return true;
        }
        return false;
    }

    Beim Auftreten des Fehlers liefert ItemExists() true, dann läuft er rein und geht beim Auslesen krachen:

     return (Guid)context.Cache[string.Format("LanguageId:{0}", key)];

    Das passiert wie gesagt nur unregelmäßig, in der einen Anwendung mal häufiger, in anderen gar nicht. Außerdem ist es nicht auf diese Stelle im Code beschränkt, d.h. es tritt anderswo ebenfalls auf, überall ist es aber das gleiche: Check ob Objekt existiert, wenn ja weise zu - bumm.

    Jemand eine Idee?   

    Abgelegt unter: ,
    • IP-Adresse ist Registriert
  • 10-25-2006 13:45 Antwort zu

    RE: Cache knallt hin und wieder ...


    Kanns was mit den AppDomain Recycles zu tun haben?

    Gruss

    Alex
    http://blogs.dotnetgerman.com/alexonasp.net

    • IP-Adresse ist Nicht registriert
  • 10-25-2006 13:58 Antwort zu

    AW: RE: Cache knallt hin und wieder ...

    Evtl möglich, ich muss mich mal erkundigen wie die Applikationen deployed werden, die es aktuell betrifft. Denn die Cache-Objekte besitzen eine FileDependency - beim Updaten der Daten wird jeweils ein Textfile innerhalb der Applikation geändert, wenn die nun nicht vorkompiliert ist, sollte sie sich durch die Fileaktionen neustarten.

    Trotzdem bleibt es komisch, denn es müsste ja exakt zu dem Zeitpunkt einen Neustart geben, nachder Abfrage IfExists - und das ist mir zu unwahrscheinlich. 

    • IP-Adresse ist Registriert
  • 10-25-2006 14:08 Antwort zu

    RE: AW: RE: Cache knallt hin und wieder ...

    zumindest in der von der beschriebenen Häufigkeit scheint es mir auch
    eher unwahrscheinlich.
     
    • IP-Adresse ist Nicht registriert
  • 10-25-2006 17:08 Antwort zu

    Re: AW: RE: Cache knallt hin und wieder ...

    Ganz Banal mal gedacht, das einfach zwischen ItemExists und dem
    nochmaligen Zugriff darauf halt einfach das Objekt aus dem geflogen ist,
    warum auch immer (z.B.Speichermangel). Ist ja auch unwichtig. Beim Cache
    erst testen ob es da ist und danach erst auslesen ist keine gute Idee.
    Der ASP.NET Cache an sich ist nichts festes (es sei dann man definiert
    der entsprechenden Cache Eintrag beim hinzufügen so) und wird bei
    Speichermangel oder anderen Ereignissen wieder freigegeben


    --

    Freundliche Grüße

    Albert Weinert

    http://der-albert.com
    http://www.afterlaunch.de Die Community Konferenz nach dem Launch von Visual Studio 2008
    • IP-Adresse ist Nicht registriert
  • 10-25-2006 17:18 Antwort zu

    AW: Re: AW: RE: Cache knallt hin und wieder ...

    Da handelt es sich ja um 0,00000x Millisekunden ... ist nicht logisch erklärbar in der Häufigkeit. Das Ganze wurde jetzt übrigens mal auf dem Standardweg von ASP.NET 2.0 veröffentlicht (kein Web-Application-Project), und es scheint zu gehen. Damit ist das erstmal wieder vom Tisch, da es auf diesem Weg des Deployment bei mir sowieso nicht vorgekommen ist.
    Abgelegt unter: ,
    • IP-Adresse ist Registriert
  • 10-25-2006 17:22 Antwort zu

    AW: Re: AW: RE: Cache knallt hin und wieder ...

    Albert Weinert:
    Beim Cache erst testen ob es da ist und danach erst auslesen ist keine gute Idee. Der ASP.NET Cache an sich ist nichts festes (es sei dann man definiert der entsprechenden Cache Eintrag beim hinzufügen so) und wird bei Speichermangel oder anderen Ereignissen wieder freigegeben

    Das ist übrigens klar, aber auch kein Problem, und wertet den Cache auch nicht ab. Ansonsten hast du Recht, sauberer wäre es wohl erst das Objekt zu holen und dann zu prüfen ob es null ist, damit geht man jedem Risiko aus dem Weg. Werde ich in Zukünft so berücksichtigen. 

    • IP-Adresse ist Registriert
  • 02-04-2007 23:14 Antwort zu

    Re: AW: Re: AW: RE: Cache knallt hin und wieder ...

    evtl. kann dir der folgende code etwas mehr klarheit geben ob die app recyclet wird:

     

    http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx

     

    gruss

    roni

    gruss,
    roni schuetz
    http://www.indexus.net
    • IP-Adresse ist Registriert
Seite 1 von 1 (8 Treffer)