2010-03-02 7 views
0

Je travaille sur une application Web ASP.NET MVC 2 qui permet aux utilisateurs de modifier les paramètres d'une simulation et de la lancer. Une fois qu'un utilisateur commence à modifier une simulation spécifique, il doit être inaccessible aux autres utilisateurs.ASP.NET MVC Mécanisme de verrouillage d'objet

Existe-t-il un moyen facile d'atteindre cet objectif dans ASP.NET MVC?

Ma première idée était de mettre l'identité de l'utilisateur connecté dans la collection Application, avec la simulation: Application.Add ((Guid) Membership.GetUser(). ProviderUserKey, simulationId); Puis je le supprimerais dans la méthode Session_End, quand la session expirera. Toutefois, la méthode Session_End n'est jamais appelée avec ces paramètres dans le fichier web.config: sessionState mode = "InProc" timeout = "1"

Qu'est-ce que je fais mal?/Y a-t-il un meilleur mécanisme?

Répondre

0

Difficile à faire dans une application Web. Peux-tu nous dire pourquoi? la détection de collision est généralement utilisée dans cette instance et le premier programme de mise à jour gagne. Les deuxièmes mises à jour peuvent soit être dit "actualiser vos données et réessayer" ou vous pouvez essayer d'appliquer ou de fusionner les modifications et offrir de sauvegarder la version la plus récente.

+0

Il y a beaucoup de paramètres à paramétrer pour lancer une simulation, donc je préfère informer l'utilisateur dès le départ que quelqu'un d'autre est déjà dans la même simulation. Il s'agit d'une application Web qui ne sera pas utilisée par un grand nombre d'utilisateurs, donc les performances ne sont pas vraiment un problème. – alex