Question

J'ai une page Web où l'utilisateur sélectionne une société et avec lequel je garde le nom de la société en mémoire pendant une session, mais lorsque je passe à la page suivante, la session ne dure que 5 minutes? Quelle que soit la raison pour laquelle je puisse résoudre ce problème, j’ai étendu l’état de la session dans Web.config mais cela n’a pas fonctionné.

Exemple: Session ("CompanyName") = "Octets technologiques"

Dans mon web.config, j'ai: délai d'attente = " 40 " / >

Je passe de Default.aspx à CompanyDetail.aspx avec ma session (" CompanyName ")

Mais si je laisse le programme inactif dans CompanyDetail.aspx, je perds l'état de session.

Des idées?

Cordialement Etienne

Était-ce utile?

La solution 8

merci à tous pour toutes les informations. La société hébergeant mon site vient de prolonger la durée du pool d'applications et cela a fonctionné!

Merci Etienne http://www.erate.co.za

Autres conseils

de votre commentaire, je vois que vous pensez que votre site se trouve dans une batterie de serveurs à équilibrage de charge.

dans ce cas, vous devez stocker votre session dans la base de données ou éviter de l'utiliser: vous ne pouvez pas être sûr que le même serveur servira le même utilisateur à chaque fois qu'il publie une publication, et si l'utilisateur quitte le serveur "A". au serveur " B " dans deux messages différents ... vos variables de session sont perdues.

lancez une recherche google sur "base de données sessionstate", vous y trouverez des tonnes d'informations.

espérons que cela aide

andrea

quelques questions:

  • le délai d'attente est-il toujours le même? 5 minutes?
  • votre site fonctionne-t-il dans une batterie de serveurs à équilibrage de charge? avec plusieurs serveurs frontaux?
  • que dites-vous dans votre configuration Web concernant les sessions et l'état de session?

Je parie que vous n'utilisez pas une batterie de serveurs à charge équilibrée et que vous utilisez un hébergement partagé.

Dans une batterie de serveurs à charge équilibrée, votre code est déployé sur plusieurs serveurs. Si vous avez des sessions bloquantes désactivées, l'utilisateur utilisera le serveur avec le moins de charge possible à chaque requête.

Puisque vous utilisez un hébergement tiers, je doute fort que vous le fassiez.

Le délai d'attente de la session peut être difficile à établir dans IIS par le fournisseur de l'hôte, et le coupable le plus probable est qu'ils l'aient défini sur 5 minutes.

Appelez votre fournisseur d’hôte, demandez-lui quels sont ses paramètres de session IIS, puis procédez à partir de là.

Dans IIS, accédez aux propriétés de votre site Web, cliquez sur l'onglet Répertoire de base, puis sur le bouton Configuration. Ici, cliquez sur l'onglet Options et vérifiez le délai d'expiration de la session. Je suis sûr que cela n'affecte que l'ASP classique, mais je ne suis pas sûr à 100%.

Si cela se produit toujours à 5 minutes, consultez Web.config pour connaître les paramètres de session et IIS: site Web / Propriétés / ASP.NET, cliquez sur Modifier la configuration, sélectionnez l'onglet Gestion de l'état et vérifiez les paramètres de session.

pourrait-il y avoir un antivirus sur le serveur qui provoque la réinitialisation de l'application Web toutes les 5 minutes, le moteur d'exécution ASP.NET pensant que les fichiers binaires ou le fichier Web.config ont changé? c'est également possible.

Une autre idée est de mettre le nom de la machine dans un commentaire sur une page et de voir s’il change de page en page simplement pour confirmer qu’il ya eu une modification du serveur qui traite la demande.

J’ai décidé de supprimer les variables de session à l’aide de variables de session! Beaucoup mieux !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top