Haste vielleicht mal an nen anderen Ansatz gedacht?

Der Output Cache l�uft ja so - das die Seite angefordert wird - diese Validiert ob sie 
noch g�ltig ist - und zeigt dann entweder sein Cache Abbild - oder l�dt sich komplett 
neu!

Das w�re doch ein Ansatz! 
- Definiere eine Globale Variable. (z.B.: DateTime LastModified)
- Dann schreibste ne Funktion die quasi das Datum des letzten Cachings (LastCaching) 
der Seite/des Controls mit der Globalen Variable vergleicht!

- Wenn LastCaching nach LastModified liegt - dann soll die Seite den Cache benutzen
- Wenn LastCaching vor LastModified liegt - dann soll sich die Seite neu laden.

Zus�tzlich schreibste die DatenInsert/Updates/Deletes so - das diese nach der �nderung 
diese Globale Variable (LastModified) neu setzen (also auf das aktuelle Datum)


Somit musste den Output Cache aller Seiten gar nicht neu setzen - sondern die machen 
das von sich aus - indem sie validieren ob sie noch g�ltig sind!

Ich habe das ganze jetzt aber net getestet - aber ich denke dieser Ansatz m�sste 
machbar sein.

Schau Dir auch mal das in der Hilfe an:
ms-help://MS.NETFrameworkSDKv1.1.DE/cpguidenf/html/cpconcachingpageoutputwithcachekeydependencies.htm

Da ist folgendes Beispiel drin:
Im folgenden Beispiel wird davon ausgegangen, dass eine Anwendung eine Komponente f�r 
Temperaturangaben aufweist. Die Komponente verwendet die Cache.Insert-Methode, um eine 
Temperaturangabe im Cache der Anwendung abzulegen.

[C#]
Cache.Insert("Temperature.CurrentTemperature", currentTemperature);
[Visual Basic]
Cache.Insert("Temperature.CurrentTemperature", currentTemperature)

Durch den folgenden Seitencode aus einem Codedeklarationsblock oder einer 
CodeBehind-Datei wird die aktuelle, im Cache gespeicherte Temperatur abgerufen, in 
eine Zeichenfolge konvertiert und anschlie�end angezeigt. Dann wird eine Abh�ngigkeit 
zwischen der Version des Ausgabecaches und dem 
Temperature.CurrentTemperature-Schl�ssel hergestellt. Von diesem Zeitpunkt an wird die 
Seitenversion aus dem Ausgabecache gel�scht, sobald die Temperatur von der 
Temperaturkomponente aktualisiert wird. Wenn die Seite erneut angefordert wird, wird 
sie wieder im Ausgabecache abgelegt.

[C#]
int temperature = (int) Cache.Get("Temperature.CurrentTemperature");
LabelTemperature.Text = temperature.ToString();
Response.AddCacheItemDependency("Temperature.CurrentTemperature");

Das sollte so auch mit Deinem Beispiel funktionieren! Nur halt das Du auf das Datum 
der Aktualisierung schauen musst!

-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Thomas Bandt
Gesendet: Mittwoch, 8. September 2004 17:21
An: [EMAIL PROTECTED]
Betreff: AW: [Asp.net] Cache leeren

schade... aber das ist eigentlich genau die frage: wo packt er das hin?

> OK - Kommando zur�ck - habs getestet - das steht der net mit drin!
> 
> -----Urspr�ngliche Nachricht-----
> Von: Pessner, Andreas 
> Gesendet: Mittwoch, 8. September 2004 17:12
> An: '[EMAIL PROTECTED]'
> Betreff: AW: [Asp.net] Cache leeren
> 
> Versuche mal den Script!
> 
> <html>
>   <head>
>     <script language="C#" runat="server">
> 
>     void Page_Load(Object sender,  EventArgs arg)
>     {
>       if(!IsPostBack)
>       {
>          String myTable = "<table 
> border=1><tr><td>Key</td><td>Value</td></tr>";
>          IDictionaryEnumerator myEnum = this.Cache.GetEnumerator();
>          while(myEnum.MoveNext())
>          {
>             myTable += "<tr><td>" + myEnum.Key + "</td>";
>             myTable += "<td>" + myEnum.Value + "</td></tr>";
>          }
>          myTable += "</table>";
>          Response.Write("<h2> The Keys and Values of the 
> 'Cache' object are: </h2>");
>          Response.Write(myTable);
>       }
>     }
> 
>    </script>
>   </head>
>   <body MS_POSITIONING="GridLayout">
>   </body>
> </html>
> 
> Damit kannste kontrollieren - ob die Seiten auch im 
> Page.Cache gespeichert werden - oder nicht! Wenn ja - dann 
> kannste alle Elemente davon mit dem Script killen:
> 
> System.Collections.IDictionaryEnumerator myEnum = 
> Page.Cache.GetEnumerator();
> while(myEnum.MoveNext())
> {
>       Page.Cache.Remove(myEnum.Key.ToString());
> }
> 
> Aber wie gesagt - ich wei� net genau - ob der die Seiten da 
> auch ablegt!
> 
> -----Urspr�ngliche Nachricht-----
> Von: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Im Auftrag von Thomas Bandt
> Gesendet: Mittwoch, 8. September 2004 15:27
> An: [EMAIL PROTECTED]
> Betreff: AW: [Asp.net] Cache leeren
> 
> Hallo an alle,
> 
> die Varianten von Matthias und Andreas funktionieren zwar, aber
> leider nicht global. Was ich suche, ist ne M�glichkeit den Cache
> f�r die gesamte Applikation zu leeren...
> 
> Gru�, Thomas
> 
> > -----Urspr�ngliche Nachricht-----
> > Von: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED] Im Auftrag von Matthias
> > Gesendet: Mittwoch, 8. September 2004 14:33
> > An: Glengamoi ASP. NET
> > Betreff: Re: [Asp.net] Cache leeren
> > 
> > Hi Thomas, der folgende im Code Behind sorgt daf�r, dass die 
> > Seite sofort neu geladen wird, wenn Du Sie mit
> > DeineSeite.aspx?Valid=False aufrufst. Ich erledige das immer 
> > gleich nach dem Update mit einem Redirect.
> > 
> > private void Page_Load(object sender, System.EventArgs e)
> > {
> > Response.Cache.AddValidationCallback(new 
> > HttpCacheValidateHandler(CacheValidate), null)
> > }
> > 
> > public void CacheValidate(HttpContext context, Object data, 
> > ref HttpValidationStatus status)
> > {
> > if (context.Request.QueryString["Valid"] == "False")
> > {
> > status = HttpValidationStatus.Invalid;
> > }
> > else
> > {
> > status = HttpValidationStatus.Valid;
> > }
> > }
> > 
> > Gru�, Matthias
> > 
> > ----- Original Message ----- 
> > From: "Thomas Bandt" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, September 08, 2004 12:13 PM
> > Subject: [Asp.net] Cache leeren
> > 
> > 
> > Hi,
> > 
> > ich w�rde gerne meine Seiten via <%@ OutputCache %> cachen.
> > Da diese aber Inhalt aus ner Datenbank beziehen, und es f�r
> > den Redakteur ziemlich bl�d w�re, wenn er 30 Minuten warten
> > m�sste, bis sein Artikel erscheint, w�rde ich beim Updaten
> > der Inhalte auch gleichzeitig gern global den ASP.NET-Cache
> > killen.
> > 
> > Ich hab' eben schon versucht auf die Cache-Collection h�ndisch
> > zuzugreifen, aber da scheint das Zeug ja nicht abgelegt zu
> > sein.
> > 
> > Jemand ne Idee?
> > 
> > Gru�, Thomas
> > 
> > 
> > _______________________________________________
> > Asp.net Mailingliste, Postings senden an:
> > [EMAIL PROTECTED]
> > An-/Abmeldung und Suchfunktion unter:
> > http://www.glengamoi.com/mailman/listinfo/asp.net
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > Asp.net Mailingliste, Postings senden an:
> > [EMAIL PROTECTED]
> > An-/Abmeldung und Suchfunktion unter:
> > http://www.glengamoi.com/mailman/listinfo/asp.net
> > 
> > 
> 
> 
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [EMAIL PROTECTED]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net
> 
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [EMAIL PROTECTED]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net
> 


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an