Asp.net mvc 2 amazon ec2上的ASP.NET MVC多实例会话管理

Asp.net mvc 2 amazon ec2上的ASP.NET MVC多实例会话管理,asp.net-mvc-2,session,amazon-ec2,load-balancing,multiple-instances,Asp.net Mvc 2,Session,Amazon Ec2,Load Balancing,Multiple Instances,我有一个用asp.net mvc2编写的web应用程序。目前托管在amazon云ec2上。由于流量不断增长,我们希望移动多实例环境。我有一个自定义会话类,它当前在会话开始时启动(全局asax),我正在应用程序中通过getter或setter类使用它。由于多实例的琐事,我必须处理安全体系结构。我正在寻找更好的方法来处理这个问题 protected void OnSessionStart() { HttpContext.Current.Session.Add("myS

我有一个用asp.net mvc2编写的web应用程序。目前托管在amazon云ec2上。由于流量不断增长,我们希望移动多实例环境。我有一个自定义会话类,它当前在会话开始时启动(全局asax),我正在应用程序中通过getter或setter类使用它。由于多实例的琐事,我必须处理安全体系结构。我正在寻找更好的方法来处理这个问题

    protected void OnSessionStart()
    {
        HttpContext.Current.Session.Add("mySessionObject", new MyAppSession());
    }


    public static MyAppSession GetMySessionObject(HttpContextBase current)
    {
        if (current != null)
        {
            if (current.Session != null)
                if (current.Session["mySessionObject"] == null)
                {
                    current.Session.Add("mySessionObject", new MyAppSession());
                }
        }
        if ( current != null && current.Session != null)
            return (MyAppSession ) (current.Session["mySessionObject"]);
        return null;
    }


and so on.

在多实例环境中,有很多会话管理选项

会话状态数据库
如果我们希望每个请求都有亲和力,那么我们有 将会话信息保存在数据库中并在数据库之间传递信息 他们这很难实现

坚持用户会话
有了它,您不必实现自定义 会话管理。您可以粘住一个用户并根据 实例,而不是每个请求

我选择第二个