(asp.net)關(guān)于SessionState與序列化的一點教訓- 虛擬主機,虛擬主機域名注冊-常見問題,虛擬主機,網(wǎng)頁制作,域名注冊,主機,企業(yè)郵局,主頁空間,個人主頁,網(wǎng)絡(luò)實名,主機托管,網(wǎng)站建設(shè),域名">

国产精品资源在线_成人在线一区二区_日韩av电影观看_国产亚洲一区二区三区在线观看_午夜在线_草逼网首页

  • 購物車  0

    我的購物車

    0 件商品,共計 0
    去購物車結(jié)算
  • 最新公告 

    未讀消息 :  忽略

    查看全部

  • 常見問題
  • 有問必答
  • 網(wǎng)站備案

歡迎您來到禾城數(shù)碼,開始互聯(lián)網(wǎng)之旅!

(asp.net)關(guān)于SessionState與序列化的一點教訓

很簡單的東西,因為在學習中遇到了,所以記錄下來.

事情的起因是,我在做一個購物藍時,將一個自定義的類CartManager整個放進Session中,它的部分代碼如下,其實就是有一個Private的ArrayList成員_cart用來放CartInfo類實例,而CartInfo類又包括一個成員ProductInfo _product和一個double _moneny...并不復雜.但是我都沒有弄任何Serializable的東西,于是...

本機調(diào)試沒問題,放到服務(wù)器上卻發(fā)現(xiàn)這個購物車表現(xiàn)非常怪異,時好時壞,總覺得好象Session里的東西亂得很,有時能存進去有時存不進?

比較了本機與服務(wù)器的環(huán)境,我知道問題肯定與SessionState有關(guān).因為服務(wù)器用了Web Farm(并且將最大工作進程數(shù)設(shè)置成了10).

一般我們在做一個WEB Application的時候,它的SessionState的Mode=InProc的,可參見web.config文件中的配置

<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
在服務(wù)器上,因為存在多個工作進程,所以需要將它的寫法改成 mode=StateServer了,否則就會造成前面所說的Session中的值不確定的現(xiàn)象.但是,如果簡單地這樣改一下,系統(tǒng)又報錯說對于以StateServer 或者 SqlServer兩種方式保存會話狀態(tài),要求對象是可序列化的(大意如此)...所以我們還需要再將對象做一下可序列化聲明.

如果要保存的對象很簡單,都是由基本類型組成的,就只需要聲明一下屬性即可,如:

[Serializable()]
public class ProductInfo {

private string f_SysID;


public string SysID {
get {
return this.f_SysID;
}
set {
this.f_SysID = value;
}
}

對于本例中,CartInfo 與 ProductInfo兩個類,可以這樣聲明一下.只是CartManager就稍多幾句話,如下:


[Serializable]
public class CartManager : ISerializable
{
private ArrayList _cart=new ArrayList();

public CartManager()
{
}

protected CartManager(SerializationInfo info, StreamingContext context)
{
this._cart=(ArrayList)info.Getvalue("_cart",typeof(ArrayList));
}

void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
info.Addvalue("_cart",this._cart);
}

private CartInfo findCartInfo(string sid)
{
foreach(CartInfo ci in this._cart)
{
if( ci.Product.SysID.Equals(sid) ) return ci;
}
return null;
}


public ArrayList getCart()
{
return this._cart;
}


這樣實現(xiàn)了整個CartManager--CartInfo--ProductInfo的可序列化聲明,于是就一切正常了...


文章出自:
http://www.cnblogs.com/sharetop/archive/2005/10/08/250286.html


來源:
閱讀:9129
日期:2007/3/29

  >> 相關(guān)文章
 
Top

客服熱線

0573-80897175

主站蜘蛛池模板: 日韩三级电影一区二区 | 日韩在线观看网站 | 国产精品成人一区二区 | 午夜天堂精品久久久久 | 91精品国产综合久久久密闭 | 鲁视频| 精品免费视频 | 久久中文字幕一区 | 亚洲天堂久久 | 日韩在线视频精品 | 亚洲成网站 | 久久日韩精品一区二区三区 | 一区二区三区四区在线视频 | 日韩视频在线一区 | 日韩视频一区二区在线 | 一区二区日本 | 91美女在线观看 | 二区av | 亚洲黄色成人网 | 在线国产一区二区 | 精品国产一区二区三区久久久蜜月 | 日韩精品免费在线观看 | 欧美一区二区三区在线看 | 欧美日韩美女 | 亚洲精品久久久蜜桃 | 亚洲精品一区二区三区免 | 欧美视频三区 | 国产xxxx搡xxxxx搡麻豆 | 国产在线精品一区二区三区 | 日韩乱码一二三 | 黄色免费av | 亚洲国产成人久久久 | 成人性视频免费网站 | 中文字幕在线精品 | 国产精品视频在线观看 | 久久av一区二区三区 | 成人福利视频 | 精品久久久久久久人人人人传媒 | 欧洲精品在线观看 | 日本黄色免费大片 | 99久久精品免费看国产四区 |