2

カンマ(1,2,3,4 ...)で区切られた数値のシーケンス入力をセッションオブジェクトに保存したい

そして私のコードは:

string items = string.Empty;

protected void Button1_Click(object sender, EventArgs e)
    {
                    fillitem(TextBox1.Text);
                    showsession();
    }

      void fillitem(string par1)
        {
            if (Session["itemvar"] != null)
            {
                items = Session["itemvar"].ToString();
                Session["itemvar"] = null;
            }

            items += par1 + ",";
            Session["itemvar"] = items;
        }     


 void showsession()
    {
            string itempp = string.Empty;
            if (Session["itemvar"] != null)
            {
                itempp = Session["itemvar"].ToString();
                int indexOfkoma = itempp.LastIndexOf(",", StringComparison.OrdinalIgnoreCase);

                if (indexOfkoma != -1)
                {
                    itempp = itempp.Substring(0, indexOfkoma);

                }
            }
            Label1.Text = itempp;

    }

コードは私のローカルでwelを実行しています。しかし、サーバーで公開すると、セッションオブジェクトは以下のトランザクションのような奇妙な結果を返します。

Button1_Clickイベント1結果:Session ["itemvar"] Return:1

Button1_Clickイベント2結果:Session ["itemvar"]戻り値:2 ---->正しい結果は次の値を返すはずです:1,2

Button1_Clickイベント3結果:Session ["itemvar"]戻り値:1,3 ---->正しい結果は次のようになります:1,2,3

Button1_Clickイベント4結果:Session ["itemvar"]戻り値:2,4 ---->正しい結果は次のようになります:1,2,3,4

何か考え、これらの奇妙な行動の原因は何ですか?

4

1 に答える 1

0

表示されている動作は、Web ファーム構成でインプロセス セッション状態 (IIS の既定) を使用していることが原因である可能性があります。

このような場合のリクエストは、実際には異なるアプリケーション サーバー (それぞれが独自のセッションを持つ) によって処理されます。

Web ファーム シナリオでこの問題を解決するには、アウト プロセス セッション状態を構成します。

于 2012-10-18T05:45:55.130 に答える