2009-11-06 3 views
3

Nous avons un site Web ASP.NET 2.0 avec une configuration avancée qui n'est pas prise en charge par un Web.config standard. Au lieu de cela, nous stockons la configuration dans notre propre schéma Xml dans le dossier/bin /, et nous avons un objet singleton qui met en cache cette configuration et utilise un FileSystemWatcher pour détecter les mises à jour. Cette logique se trouve dans une bibliothèque de classe séparée qui est juste utilisée par le site Web.Pourquoi FileSystemWatcher réinitialise-t-il nos sessions de site Web?

Le problème est, chaque fois que nous modifions cette configuration, toutes les sessions utilisateur sont réinitialisées, comme si nous avions redémarré le pool d'applications dans IIS! Nous utilisons des singletons et divers autres mécanismes de mise en cache qui fonctionnent très bien, mais pour une raison quelconque, seul celui avec les bombes FSW. Toute idée serait appréciée!

Répondre

4

Si votre fichier XML est sous votre BIN dossier puis application Web redémarrera automatiquement quand quelque chose change dans ce dossier.

L'application Web sera également RESTART si Web.Config ou Machine.Config sont changées ou modifiées.

+0

Merci, nous l'avons déplacé à la place dans le dossier App_Data (semble un endroit évident pour le replacer rétrospectivement) et nous pouvons maintenant le mettre à jour parfaitement sans réinitialiser les sessions. Le respect! – realworldcoder