web-dev-qa-db-fra.com

Où sont enregistrées les variables de session?

Où sont exactement enregistrées les variables de session? Biscuits? Mémoire du serveur?

Encore une fois, où les variables d'application sont-elles enregistrées?

34
Manish

Les variables mises en session sont stockées partout où le SessionStateProvider configuré est configuré pour les stocker.

La valeur par défaut SessionStateProvider utilise ce que l'on appelle la session en cours (InProc) et l'emplacement de stockage correspondant est dans la mémoire du serveur, à l'intérieur de l'espace mémoire du processus de travail ASP.NET.

Vous pouvez configurer votre propre SessionStateProvider pour stocker des variables de session ailleurs, par exemple hors processus, dans une base de données.

Les variables d'application sont stockées dans ApplicationState qui est également stockée dans l'espace mémoire du processus de travail ASP.NET. Contrairement à l'état de session, l'état d'application s'applique à tous les utilisateurs et sessions. Pour autant que je sache, il n'y a pas de configuration pour stocker ApplicationState ailleurs; si vous avez besoin de stocker de nombreuses données d'application, vous voudrez peut-être regarder Mise en cache ASP.NET .

44
Russ Cam

Les variables de session sont stockées sur la mémoire et le disque du serveur sous la forme Les variables d'application le sont.

De documentation ASP.NET :

L'état de session ASP.NET prend en charge plusieurs options de stockage pour les variables de session. Chaque option est identifiée comme un type de mode d'état de session. Le comportement par défaut consiste à stocker des variables de session dans l'espace mémoire du processus de travail ASP.NET. Cependant, vous pouvez également spécifier que l'état de session doit être stocké dans un processus distinct, dans une base de données SQL Server ou dans une source de données personnalisée. Si vous ne souhaitez pas que l'état de session soit activé pour votre application, vous pouvez définir le mode de session sur Désactivé.

12
Pablo Santa Cruz

Pour une session InProc, les variables sont stockées localement dans la mémoire du processus de travail ASP.NET. Il en va de même pour l'état de l'application.

4
Dienekes