2009-05-21 4 views
2

Dans ASP.NET 3.5, est-il possible de parcourir tous les objets de session (pas les objets de la session en cours, mais toutes les sessions de tous les utilisateurs) afin de pouvoir manipuler leur contenu de collecte toutes les sessions actives)?ASP.NET: Est-il possible de parcourir tous les objets de session?

Et si tel est le cas, cela fonctionne-t-il avec ASP.NET State Service (accès à toutes les sessions créées par tous les serveurs Web partageant le même service d'état, tous à partir d'un serveur Web)?

Répondre

1

Je pense que la seule réponse que j'ai trouvée est: Si vous travaillez avec une seule boîte, vous pouvez mettre les sessions dans une collection qui est stockée dans la collection d'applications, et supprimer chaque session à chaque session prend fin. Mais pour faire des mises à jour globales de session sur un serveur d'état partagé, le commentaire de tvanfosson sous l'une des autres réponses est crédible: SQL Server est la seule option raisonnablement viable, en dehors de l'utilisation d'un serveur tiers ou alternatif .

1

This answer à un question I asked sur la suppression d'une session d'une autre session peut vous être utile. Je ne l'ai pas essayé et vous auriez besoin de l'étendre, mais il semble possible d'accéder au conteneur pour toutes les sessions en utilisant la réflexion.

+0

Cette technique supprime-t-elle des éléments du magasin de sessions sous-jacent? Le supprime-t-il de SQL Server s'il y est stocké ou du serveur d'état? –

+1

Cela s'applique uniquement à la session InProc, qui ne serait utile que sur un seul serveur. Le faire à partir du serveur SQL devrait être beaucoup plus facile, mais je n'ai pas vraiment regardé le schéma pour savoir s'il est possible d'accéder à un élément particulier. J'utilise généralement InProc car je ne stocke pas beaucoup et mes applications sont assez petites pour un seul serveur. – tvanfosson

+0

Merci, mais vous pouvez également placer la Session dans une nouvelle collection et la mettre dans la collection Application. J'ai besoin de mettre à jour au nom de tous les serveurs en utilisant le serveur d'état. –

Questions connexes