0

asp.net mvc2 で記述された Web アプリケーションがあります。現在、Amazon クラウド ec2 でホストされています。トラフィックが増加しているため、マルチインスタンス環境に移行したいと考えています。現在、セッションの開始時に開始するカスタム セッション クラス (グローバル asax) があり、アプリケーションでゲッターまたはセッター クラスを介して使用しています。マルチインスタンス雑用のため、ホールセキュリティアーキテクチャを処理する必要があります。この問題を処理するためのより良い方法を探しています。

    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.
4

1 に答える 1

0

マルチインスタンス環境でのセッション管理には幅広いオプションがあります。

セッション状態データベース
リクエストごとにアフィニティを作成する場合は、セッション情報をデータベースに保持し、それらの間で情報を渡す必要があります。これを実装するのは難しいです。

スティックユーザーセッション
これを使用すると、カスタムセッション管理を実装する必要はありません。ユーザーを固定して、リクエストごとではなくインスタンスごとにアフィニティを作成できます。

私は2番目のものを選びます。

于 2011-07-22T15:56:47.543 に答える