J'ai écrit ma propre classe PageStatePersister
basée sur SessionPageStatePersister
qui écrit les 10 10 Viewstate
s les plus récents pour une session sur un disque partagé. Je pense que cela fonctionnera mieux que de garder Viewstate
en session puisque tous les serveurs web y ont accès, ils n'auront pas à gérer l'expiration et utiliseront moins de mémoire.Viewstate dans les fichiers plats vs viewstate dans SQLserver
Lorsqu'un utilisateur ferme le navigateur, il avertit le serveur et le serveur supprime les fichiers qui n'ont pas été consultés depuis deux heures. Jusqu'ici tout va bien, mais je me demande s'il sera plus rapide et plus efficace de stocker Viewstate
dans une base de données SQL Server.
- Chaque fichier
ViewState
a une taille moyenne de 30k. - Actuellement, il suffit de lire un champ caché pour obtenir une clé Viewstate et accéder directement au fichier et le désérialiser. Il n'y a pas besoin de trier ou de chercher.
- Il y aura environ 2000 utilisateurs simultanés par heure et l'enregistrement des dernières 20 sessions Viewstate sera d'environ 20k fichiers d'affichage temporaire par heure.
- Il doit régulièrement parcourir les fichiers et supprimer le fichier le plus ancien.
Alors qui est mieux dans ce cas: un système flatfile ou une base de données ?
Vous avez mentionné "Je pense que cela sera plus efficace que de garder viewstate en session puisque tous les serveurs web y ont accès". Que voulez-vous dire par l'état de view est maintenu en session? Est-ce quelque chose que vous vouliez explicitement? Pour stocker les données viewstate dans le serveur et non sur les navigateurs des clients? –
yep viewstate devrait être sur le serveur. – Tuviah