2012-10-18 80 views
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; 

    } 

代碼在我的本地運行。但是,當我在服務器上發佈,會話對象返回奇怪的結果如下面的事務:

Button1_Click事件1個結果: 會話[ 「itemvar」]返回:1

Button1_Click事件2結果: 會話[」 itemvar「]返回:2 ---->正確的結果應該返回:1,2

Button1_Click事件3結果: 會話[」itemvar「]返回值:1,3 ---->正確的結果應該是返回:1,2,3

Button1_Click事件4結果: 會話[「itemvar」]返回:2,4 ---->正確的結果應該返回:1,2,3,4

任何想法,這些奇怪行爲的原因是什麼?

+0

你在網上農場上運行嗎?什麼是會話狀態模式? – nunespascal

回答

0

您看到的行爲可能是由Web場配置中的使用進程內會話狀態(IIS上的默認設置)引起的。

您在這種情況下的請求實際上將由不同的應用程序服務器提供服務(每個服務器都有自己的會話)。

Configure Out-of-Process Session State在Web場景中解決此問題。

+0

感謝您的快速回復...我會嘗試sugguestion .. –