Was ist der beste Weg, um den Server-Cache in einer Web-Farm remote zurückgesetzt?

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

  •  09-06-2019
  •  | 
  •  

Frage

Jeder unserer Produktion Webserver unterhält einen eigenen Cache für separate Web-Sites (ASP.NET Web Applications). Derzeit einen Cache löschen wir in den Server und „touch“ die Datei web.config anmelden.

Hat jemand ein Beispiel für einen sicheren / sicher zu Remote Zurücksetzen der Cache für eine bestimmte Web-Anwendung? Im Idealfall würden wir sagen können, „den Cache für App X löschen auf allen Servern laufen“, sondern auch „den Cache für App löschen X läuft auf Server Y“.

Edits / Klärungen:

  • Ich sollte wohl klarstellen, dass diese sich über die Anwendung zu tun ist nicht wirklich eine Option (das heißt eine Art Protokoll in der Anwendung, surfen auf eine bestimmte Seite oder Handler, der den Cache löschen würde). Um so etwas zu tun, wir bräuchten deaktivieren / Bypass-Protokollierung und Statistiken Tracking-Code oder versauen unserer Statistiken.

  • Ja, verfällt der Cache regelmäßig. Was ich möchte, obwohl zu tun ist, Setup etwas, damit ich einen bestimmten Cache bei Bedarf ablaufen kann, in der Regel, nachdem wir etwas in der Datenbank (wir verwenden SQL 2000) ändern. Wir können dies jetzt tun, sondern nur durch sich selbst in den Servern anmelden.

War es hilfreich?

Lösung 2

Gefunden einen DevX Artikel über ein Touch-Dienstprogramm, das aussehen nützlich.

Ich werde mit versuchen, der Kombination, dass entweder eine Tabelle in der Datenbank (einen Datensatz hinzufügen und der Touch-Dienstprogramm findet sie und aktualisiert die entsprechende web.config-Datei) oder einen Web-Service (Anruf und das Touch-Dienstprogramm wird genannt die entsprechende Datei web.config)

zu aktualisieren

Andere Tipps

Für jede Anwendung können Sie eine kleine Cache-dump.aspx Skript schreiben, um die Cache / Anwendungsdaten zu töten. Kopieren Sie es auf alle Ihre Anwendungen und schreiben einen Hub-Skript die Berufung zu verwalten.

Für mehr Sicherheit, Sie alle Arten von Authentifizierungs-Lookups oder IP-checking hinzufügen könnten.

Hier ist die Art und Weise ich die tatsächliche app-Dumping:

Context.Application.Lock()
Context.Session.Abandon()
Context.Application.RemoveAll()
Context.Application.UnLock()

Das kann nicht sein „elegant“, aber man kann Setup eine geplante Aufgabe, die eine Batch-Skript ausführt. Das Skript würde im Wesentlichen „berühren“, um die web.config (oder eine andere Datei, die eine erneute Kompilierung verursacht) für Sie.

Ansonsten ist Ihre Anwendung Cache nicht nach N Minuten abzulaufen eingestellt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top