J'ai une application ASP.NET qui fait partie d'un système beaucoup plus grand; il lit la plupart de sa configuration à partir de fichiers situés au-dessus du niveau racine de l'application Web.Comment puis-je faire redémarrer ASP.NET lorsqu'un fichier est modifié?
Comme l'application est déjà écrit et le format des fichiers de configuration a été choisie pour faciliter l'édition par les clients, je ne peux pas utiliser la solution dans “Shared configuration files in .NET”.
J'espère que ASP.NET a une API que je peux appeler à le temps de démarrage pour lui dire quel fichier regarder. (Je pourrais écrire cela à la dure en utilisant un "FileSystemWatcher" et attraper des événements puis faire le redémarrage moi-même, mais ce serait dommage car ASP.NET a déjà le code pour regarder les fichiers et redémarrer quand ils sont changés.)
Quelle API ASP.NET dois-je appeler pour redémarrer ASP.NET de manière agréable?
Voici quelques liens que j'ai trouvé qui peuvent aider: Using the FileSystemWatcher from ASP.NET et Extending FileSystemWatcher to ASP.NET
Dans un cas, je mis en mémoire cache la configuration dans le cache ASP.NET et définir un CacheDependency au fichier. Dans l'autre cas qui nécessitait un accès plus rapide, j'ai utilisé un FileSystemWatcher et mis à jour un champ statique lorsque la configuration a changé.
(je ne ai jamais su comment redémarrer ASP.NET à partir du code d'une manière raisonnable.)
La méthode HttpRuntime.UnloadAppDomain() est ce qui me manquait. –