Управление сеансами с несколькими экземплярами ASP.NET MVC на amazon ec2 - PullRequest
0 голосов
/ 12 июня 2011

У меня есть веб-приложение, написанное на asp.net mvc2. В настоящее время размещен на Amazon 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.

1 Ответ

0 голосов
/ 22 июля 2011

Существуют широкие возможности для управления сеансом в многоэкземплярной среде.

База данных состояний сеансов
Если мы хотим привязку к запросу, мы должны хранить информацию сеанса вбазы данных и передавать информацию между ними.Это трудно реализовать.

Stick User Session
При этом вам не нужно реализовывать настраиваемое управление сеансами.Вы можете прикрепить пользователя и сделать привязку для каждого экземпляра, а не для запроса.

Я выбираю второй.

...