【问题标题】:ASP.NET MVC Object locking mechanismASP.NET MVC 对象锁定机制
【发布时间】:2010-03-02 23:05:59
【问题描述】:

我正在开发一个 ASP.NET MVC 2 Web 应用程序,它允许用户在模拟中编辑参数并启动它。一旦用户开始编辑特定模拟,其他用户就必须无法访问它。

在 ASP.NET MVC 中是否有一种简单的方法可以实现该目标?

我的第一个想法是将登录用户的身份与模拟一起放入 Application 集合中: Application.Add((Guid)Membership.GetUser().ProviderUserKey, simulationId);

然后,当会话到期时,我会在 Session_End 方法中将其删除。但是,从不会使用 web.config 文件中的这些参数调用 Session_End 方法: sessionState mode="InProc" timeout="1"

我做错了什么? / 有没有更好的机制?

【问题讨论】:

    标签: asp.net-mvc session-state sessionstate-timeout


    【解决方案1】:

    在 Web 应用程序中很难做到。你能告诉我们为什么吗?通常在这种情况下使用碰撞检测并且第一个更新者获胜。可以告诉第二个更新者“刷新您的数据并重试”,或者您可以尝试应用或合并更改并提供保存较新版本。

    【讨论】:

    • 要设置很多参数来启动模拟,所以我更愿意提前通知用户其他人已经在同一个模拟中。这是一个不会被大量用户使用的网络应用程序,因此性能并不是真正的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多