Управление сеансами в нескольких экземплярах ASP.NET MVC на amazon ec2
У меня есть веб-приложение, написанное на 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 ответ
Есть широкие возможности для управления сессиями в многоэкземплярной среде.
База данных состояния сеанса
Если мы хотим привязку к запросу, мы должны хранить информацию о сеансе в базе данных и передавать информацию между ними. Это сложно реализовать.Stick User Session
При этом вам не нужно реализовывать пользовательское управление сессиями. Вы можете прикрепить пользователя и сделать привязку для каждого экземпляра, а не для запроса.
Я выбираю второй.