J'ai une application Asp.net Mvc avec un moteur de vues de rasoir, dans laquelle j'ai utilisé une variable Session['user']
: lorsqu'un utilisateur ouvre une session sur l'application Session['user'] = login
et lors de la déconnexion, cette variable prend la valeur Null
.
Le problème est qu'il y a un court délai d'attente et que la variable de session expire: si je ne fais rien dans la minute qui suit la connexion à l'application Session['user'] =null
automatiquement.
Alors, comment puis-je définir le délai d'expiration de la variable de la session illimitée jusqu'à ce qu'elle soit modifiée par le programme? Des suggestions?
Alors, comment puis-je définir le délai d'expiration de la variable de la session illimitée jusqu'à ce qu'elle soit modifiée par le programme? Des suggestions?
Vous ne pouvez pas définir la valeur de timeout
sur illimité.
Vous pouvez augmenter la valeur du délai d'expiration en minutes à l'aide de l'attribut timeout
de l'élément sessionState
dans web.config .
RÉGLAGES DE L'ÉTAT DE LA SESSION
Par défaut, ASP.NET utilise des cookies pour identifier les demandes qui appartiennent à une session particulière. Si les cookies ne sont pas disponibles, une session peut être suivie en ajoutant un identifiant de session à l'URL. Pour désactiver les cookies, définissez sessionState cookieless="true".
(120 = minutes)
<sessionState mode="StateServer" cookieless="false" timeout="120"/>
Découvrez ceci Session-Time out
Vous ne pouvez pas l'attribuer à illimité. Vous pouvez augmenter la valeur en minutes à l'aide de l'attribut de délai d'expiration de l'élément d'état de session dans web.config
<sessionState timeout="30">
</sessionState>
Par défaut, le délai d'expiration de session est de 20 minutes. Dans votre cas également, si vous utilisez l'authentification par formulaire, vérifiez également le délai d'expiration de l'authentification.
<authentication mode="Forms">
<forms loginUrl="logon.aspx"
protection="All" path="/" timeout="30" />
</authentication>
C'est le timeout de la session, pas la variable. Réglez-le dans la configuration en quelques minutes
<sessionState timeout="30" />
Il n'est pas possible de définir le délai de session sur: illimité. Définissez plutôt le délai d'expiration de la session sur un exemple de valeur élevée:
<configuration>
<system.web>
<sessionState mode="InProc" timeout="350" />
</system.web>
</configuration>
J'ai eu un problème similaire plus tôt et il ne s'agissait pas de la valeur de délai d'expiration de session. Par conséquent, Parfois, il s'agit maintenant de la période d'expiration. Ce délai d'expiration de session peut être défini sur 20 minutes ou plus, mais si le serveur d'hébergement ou votre ordinateur est TRÈS FAIBLE activé MÉMOIRE . Les valeurs de session sont ensuite effacées et l'utilisateur devra parfois se reconnecter.
Cette mémoire insuffisante est parfois causée par STORING IMAGES ou BINARY VALUES dans la base de données au lieu d'être stockée en tant que fichiers sur le serveur et d'y accéder à l'aide de la procédure System.IO.File. Ainsi, lorsque vous essayez de récupérer certains enregistrements, leurs DONNÉES D'IMAGES sur la TABLE seront également récupérées, ce qui entraînera une réduction SIGNIFICATIVE des performances et également une SUR-CONSOMMATION de la MÉMOIRE disponible.
CE PEUT ÊTRE QUE VOTRE ORDINATEUR OR HÉBERGEMENT EST TRÈS FAIBLE EN MÉMOIRE (Pas d'espace de stockage)
J'espère que cela t'aides.