2009-09-28 9 views
0

J'ai un site Web asp.net, qui utilise le framework MVC 1.0, mais j'ai trouvé parfois qu'il perdrait la session en cours de manière inattendue, mais je ne trouve pas la cause de ce problème.pourquoi la session est inattendue dans asp.net?

Quelqu'un a-t-il des suggestions? ou dites-moi comment trouver la raison de ce numéro,

Merci d'avance!

+1

quel mode sessiontate utilisez-vous? inproc, stateserver ou sqlserver? – MusiGenesis

+0

Où puis-je voir mon mode sessionSate actuel? – MemoryLeak

+0

Je suis sûr que si vous n'avez pas explicitement défini cela dans votre web.config, alors vous utiliseriez inproc. – User

Répondre

2

Une cause possible est que le processus de travail IIS est en cours de recyclage pour une raison quelconque. Lorsque cela se produit et que vous utilisez une session inproc, vous perdez vos variables de session.

http://blogs.msdn.com/david.wang/archive/2005/09/19/Why_do_I_lose_ASP_Session_State_on_IIS6.aspx

En effet, les données de session sont stockées dans la mémoire du processus de travail. D'un autre côté, si vous utilisez un serveur de session hors processus, vos données de session sont stockées ailleurs (base de données SQL Server par exemple) et peu importe si le processus de travail redémarre.

Vous pouvez modifier les paramètres dans IIS pour minimiser le redémarrage du processus de travail.

+0

Je réfléchis à propos de: System.Threading.ThreadPool.QueueUserWorkItem (delegate {smtp.Send (mailMessage);}); Je l'utilise pour envoyer des e-mails, que cela entraîne ou non l'arrêt des discussions et la fermeture de session? – MemoryLeak