2010-03-02 2 views
0

저는 ASP.NET MVC 2 웹 응용 프로그램을 사용하여 사용자가 시뮬레이션에서 매개 변수를 편집하고 실행할 수 있도록했습니다. 사용자가 특정 시뮬레이션 편집을 시작하면 다른 사용자가 액세스 할 수 없어야합니다.ASP.NET MVC 객체 잠금 메커니즘

ASP.NET MVC에서 그 목표를 달성하기위한 쉬운 방법이 있습니까?

첫 번째 아이디어는 시뮬레이션과 함께 로그온 한 사용자의 ID를 Application 컬렉션에 넣는 것이 었습니다. Application.Add ((Guid) Membership.GetUser(). ProviderUserKey, simulationId);

그런 다음 세션이 만료되면 Session_End 메서드에서 제거합니다. 그러나 Session_End 메서드는 web.config 파일의 해당 매개 변수와 함께 호출되지 않습니다. sessionState mode = "InProc"timeout = "1"

무엇이 잘못 되었나요?/더 나은 메커니즘이 있습니까?

답변

0

웹 응용 프로그램에서하기가 어렵습니다. 왜 그런지 말해 줄 수 있어요? 일반적으로 충돌 감지가이 인스턴스에서 사용되고 첫 번째 업데이터가 승리합니다. 두 번째 업데이터는 "데이터를 새로 고침하고 다시 시도하십시오"라고 말하거나 변경 사항을 적용하거나 병합하여 새로운 버전을 저장하려고 시도 할 수 있습니다.

+0

시뮬레이션을 시작하기 위해 설정해야 할 매개 변수가 상당히 많으므로 다른 사용자가 이미 동일한 시뮬레이션에 있음을 사용자에게 알려주는 것이 좋습니다. 많은 수의 사용자가 사용하지 않을 웹 응용 프로그램이므로 성능이 실제로 문제가되지 않습니다. – alex

관련 문제