2010-01-27 4 views
21

J'ai besoin de comprendre l'état de la session ASP.NET, car il s'applique à IIS 7 et ASP.net 3.5.État de session ASP.NET et plusieurs processus de travail

Si une application est configurée pour utiliser l'état de session en cours, cela fonctionnera-t-il correctement s'il existe plusieurs processus de travail? En d'autres termes, les processus de travail partagent-ils l'état de la session?

La configuration par défaut d'IIS 7 consiste à utiliser l'état de session en cours et à allouer un maximum de 10 processus de travail. Il semblerait alors probable que cette configuration par défaut devrait fonctionner. Je fais affaire avec une entreprise qui a produit une application Web ASP.NET MVC qui a des problèmes, elle blâme l'environnement du serveur. La réclamation est que parce que j'utilise les paramètres par défaut de 10 processus de travail, c'est briser leur état de session. J'ai besoin de savoir si c'est une affirmation exacte. Je n'ai jamais connu une application ASP.NET pour ne pas fonctionner avec la configuration par défaut, donc je suis un peu confus et j'ai besoin de clarifier cela.

+1

Quels sont les problèmes rencontrés par l'application? Cela ressemble plus à un problème de recyclage des processus de travail à première vue. –

+0

La session inproc n'est pas partagée entre les processus de travail. Il suffit de définir leur pool d'applications pour n'en utiliser qu'un seul et les problèmes disparaîtront. – NotMe

Répondre

21

Avoir plusieurs processus de travail et utiliser InProc ne semble pas compatible.

Voir this:

Si vous activez le mode Web-jardin en définissant l'attribut webGarden à true dans l'élément processModel du fichier web.config de l'application, ne pas utiliser le mode d'état de session InProc. Si vous le faites, la perte de données peut se produire si différentes demandes pour la même session sont servies par différents processus de travail.

+0

cela ne fonctionne pas. –

5

Je peux me tromper, mais pour autant que je sache, par défaut, vous n'avez qu'un processus de travail par domaine d'application avec plusieurs threads de travail pour gérer les demandes. Dans ce cas, l'état de session In-Proc devrait fonctionner correctement (les paramètres par défaut). Mais si vous avez plusieurs processus de travail (pas seulement les processus de travail, les processus de travail), vous avez besoin d'un état de session hors processus.

Je pense qu'avoir plus de 1 processus de travail dans ASP.NET est référencé web garden mode que vous devez activer spécifiquement et si vous le faites, alors vous avez besoin d'une gestion d'état hors processus. Voir le comment box on this page sous le en-cours en mode de traitement.

8

Plus d'un processus de travail est un "web-jardin". L'état de la session en cours de traitement ne fonctionnera pas correctement. Vous devez utiliser un processus de travail unique pour votre application Web ou utiliser un serveur d'état de session ou SQL Server pour l'état de la session.

Questions connexes