亚马逊ec2上的ASP.NET MVC多实例会话管理

发布于 2024-11-15 05:37:31 字数 860 浏览 3 评论 0原文

我有一个用 ASP.NET MVC2 编写的 Web 应用程序。目前托管在亚马逊云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.

I have a web application written in asp.net mvc2. Currently hosted on amazon cloud ec2. Because of growing traffic we want move multi instance enviorenment. I have a custom session class which currently initiate at session start (global asax) and i am using via getter or setter class in application. Because of multi instance chore i have to handle hole security architecture. I am looking a better way to handle this problem.

    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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜深人未静 2024-11-22 05:37:31

多实例环境上的会话管理有多种选择。

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

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

我选择第二个。

There is wide options for session management on multiinstance enviorenment.

Session State Database
If we want to affinity per request then we have
to keep session information in database and pass information between
them. This is hard to implement.

Stick User Session
With this you don't have to implement custom
session management. You can stick a user and make affinity per
instance instead of per request.

I choose second one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文