Quel est le meilleur moyen de réinitialiser à distance le cache du serveur dans une batterie de serveurs Web?

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

  •  09-06-2019
  •  | 
  •  

Question

Chacun de nos serveurs Web de production conserve son propre cache pour des sites Web distincts (applications Web ASP.NET). Pour vider un cache, nous nous connectons actuellement au serveur et nous effleurons la touche. le fichier web.config.

Quelqu'un a-t-il un exemple de moyen sûr / sécurisé de distancer à distance le cache d'une application Web spécifique? Dans l’idéal, nous pourrons dire "vider le cache pour l’application X exécutée sur tous les serveurs". mais aussi "vider le cache pour l'application X s'exécutant sur le serveur Y".

Modifications / Clarifications:

  • Je devrais probablement préciser que le faire via l'application elle-même n'est pas vraiment une option (c'est-à-dire une sorte de connexion à l'application, accédez à une page ou à un gestionnaire spécifique pour effacer le cache). Afin de faire quelque chose comme ceci, nous aurions besoin de désactiver / contourner la journalisation et le code de suivi des statistiques, ou de modifier nos statistiques.

  • Oui, le cache expire régulièrement. Ce que j'aimerais cependant, c’est d’installer quelque chose de manière à pouvoir expirer un cache spécifique à la demande, généralement après avoir modifié quelque chose dans la base de données (nous utilisons SQL 2000). Nous pouvons le faire maintenant, mais uniquement en nous connectant aux serveurs eux-mêmes.

Était-ce utile?

La solution 2

Vous avez trouvé un article DevX concernant un utilitaire tactile avoir l'air utile.

Je vais essayer de combiner cela avec une table de la base de données (ajouter un enregistrement et l'utilitaire tactile le trouve et met à jour le fichier web.config approprié) ou avec un service Web (passer un appel et l'utilitaire tactile obtient appelé pour mettre à jour le fichier web.config approprié)

Autres conseils

Pour chaque application, vous pouvez écrire un petit script cache-dump.aspx pour détruire les données de cache / d'application. Copiez-le dans toutes vos applications et écrivez un script de hub pour gérer les appels.

Pour des raisons de sécurité, vous pouvez ajouter toutes sortes de recherches d’authentification ou de vérification d’IP.

Voici comment je fais le dumping d'application:

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

Cela peut ne pas être "élégant", mais vous pouvez configurer une tâche planifiée qui exécute un script de traitement par lots. Le script serait essentiellement "tactile". le fichier web.config (ou un autre fichier provoquant une recompilation) pour vous.

Sinon, le cache de votre application n'est-il pas configuré pour expirer après N minutes?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top