Envisagez de stocker vos variables partagées dans l'objet HttpApplication ou dans l'objet Cache. Toutefois, si vous essayez de stocker des valeurs pour chaque utilisateur séparément, vous devez stocker ces valeurs dans une variable de session.
Les variables statiques à l'intérieur de Asp.Net sont partagées dans l'espace mémoire du processus w3svc.exe et ne sont PAS sécurisées pour les threads. Ils peuvent être consultés et modifiés par n'importe quel utilisateur de l'application. Cela pourrait entraîner des modifications indésirables, sauf si vous écrivez votre propre mécanisme de verrouillage autour du stockage de ces valeurs.
Vous devriez essayer une syntaxe comme:
Application["KEY"] = value;
pour stocker des données partagées à l'échelle application et
Session["KEY"] = value;
pour stocker des données sur une base par utilisateur
Vous pouvez utiliser la Objet WebCache pour stocker des données dans la mémoire du serveur Web avec des conditions d'expiration. Syntaxe pour qui ressemble à:
Page.Cache.Insert("KEY", "VALUE", null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
En savoir plus sur la syntaxe de la gestion de l'objet WebCache peut être trouvé à:
http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx
merci beaucoup
Dans Asp.Net, ma préférence est de ne pas utiliser de variable statique pour les points de données partagés. Je préférerais utiliser l'objet Cache (éditer bientôt pour montrer l'exemple de syntaxe) afin que je puisse contrôler la durée de vie de mes points de données partagés. –
La session est la solution la plus simple pour stocker les valeurs par utilisateur.Si vous stockez des objets volumineux (pensez aux jeux de données), votre performance se dégradera. Remarque: La session peut être stockée dans Asp.Net State Server ou le serveur SQL sur une machine étrangère, ce qui vous permet de gérer ces points de données spécifiques à l'utilisateur sur des serveurs Web dans un environnement webfarm –