J'exécute une application ASP.NET 2.0 dans IIS 6.0. Je souhaite que le délai d'expiration de la session soit de 60 minutes au lieu de 20 minutes par défaut. J'ai fait ce qui suit
- Mettre
<sessionState timeout="60"></sessionState>
enweb.config
. - Définissez le délai d'expiration de session sur 60 minutes dans le gestionnaire IIS / les propriétés du site Web / les paramètres de configuration ASP.NET.
- Définissez le délai d'inactivité sur 60 minutes dans les propriétés / performances du pool d'applications.
J'obtiens toujours un délai d'expiration de session à 20 minutes. Dois-je faire autre chose?
Réponses:
Utilisez-vous l'authentification par formulaire?
L'authentification par formulaire utilise sa propre valeur pour le délai d'expiration (30 minutes par défaut). Un délai d'expiration d'authentification par formulaire enverra l'utilisateur à la page de connexion avec la session toujours active. Cela peut ressembler au comportement de votre application lorsque la session expire, ce qui permet de facilement confondre l'un avec l'autre.
La définition du délai d'expiration des formulaires sur une valeur inférieure au délai d'expiration de la session peut donner à l'utilisateur une fenêtre dans laquelle se reconnecter sans perdre aucune donnée de session.
la source
Je ne connais ni web.config ni IIS. Mais je crois qu'à partir du code C #, vous pouvez le faire comme
la source
Session.Timeout
est différent de l'utilisation de web.config ou IIS, donc je suppose que c'est pour l'ensemble de l'application.Utilisez le bloc de code suivant dans votre fichier web.config. Ici, le délai d'expiration de la session par défaut est de 80 minutes.
Utilisez le lien suivant pour le délai d'expiration de la session avec un message d'alerte contextuel.
Exemple de délai d'expiration de session
FYI: Les exemples ci-dessus sont réalisés avec le contrôle popup devexpress, vous devez donc personnaliser / remplacer le contrôle popup devexpress par un contrôle popup normal. Si vous utilisez devexpress pas besoin de personnaliser
la source
Y a-t-il quelque chose dans machine.config qui pourrait prendre effet? La définition du délai d'expiration de la session dans web.config doit remplacer tous les paramètres dans IIS ou machine.config, cependant, si vous avez un fichier web.config quelque part dans un sous-dossier de votre application, ce paramètre remplacera celui de la racine de votre application.
En outre, si je me souviens bien, le délai d'expiration dans IIS n'affecte que les pages .asp, pas .aspx. Êtes-vous sûr que votre code de session dans web.config est correct? Cela devrait ressembler à quelque chose comme:
la source
Dans ma situation, c'était Application Pool. Il est configuré pour redémarrer lorsqu'il est inactif pendant xx minutes. Lorsque je le configure pour ne pas redémarrer, il semble utiliser la valeur de Web Config.
la source
C'est généralement tout ce que vous devez faire ...
Êtes-vous sûr qu'après 20 minutes, la raison pour laquelle la session est perdue est d'être inactive ...
Il existe de nombreuses raisons pour lesquelles la session pourrait être effacée. Vous pouvez activer la journalisation des événements pour IIS et pouvez ensuite utiliser l'observateur d'événements pour voir les raisons pour lesquelles la session a été effacée ... vous pourriez trouver que c'est peut-être pour d'autres raisons?
Vous pouvez également lire la documentation des messages d'événement et le tableau des événements associé .
la source
Si vous utilisez l'authentification, je vous recommande d'ajouter ce qui suit dans le fichier web.config.
Dans mon cas, les utilisateurs sont redirigés vers la page de connexion à l'expiration du délai:
la source
https://usefulaspandcsharp.wordpress.com/tag/session-timeout/
la source
Depuis ASP.Net core 1.0 (vNext ou quel que soit son nom), les sessions sont implémentées différemment. J'ai changé la valeur du délai d'expiration de session dans
Startup.cs
, envoid ConfigureServices
utilisant:Ou si vous souhaitez utiliser le
appsettings.json
fichier, vous pouvez faire quelque chose comme:la source
Vous pouvez trouver le paramètre ici dans IIS:
Il peut être trouvé au niveau du serveur, au niveau du site Web ou au niveau de l'application sous "ASP".
Je pense que vous pouvez le définir au niveau web.config ici. Veuillez le confirmer vous-même.
la source
La valeur du délai d'expiration des sessions IIS concerne uniquement les applications .asp classiques, elle est contrôlée sur la configuration IIS. Dans votre cas Pour les applications ASP.NET, seule la valeur de délai d'expiration spécifiée par web.config s'applique.
la source
Le délai d'expiration de session par défaut est défini dans IIS à 20 minutes
Suivez les procédures ci-dessous pour chaque site hébergé sur le site Web IIS 8.5
la source
si vous voulez que la session expire pour le site Web, supprimez
balise du fichier web.config.
la source
La propriété Timeout spécifie le délai d'expiration attribué à l'objet Session pour l'application, en minutes. Si l'utilisateur n'actualise pas ou ne demande pas de page dans le délai d'expiration, la session se termine.
la source
Après avoir modifié la valeur du délai d'expiration de session dans IIS, veuillez redémarrer IIS. Pour ce faire, accédez à l'invite de commande. Tapez IISRESET et appuyez sur Entrée.
la source