<cite id="soqa1"><track id="soqa1"></track></cite>

<em id="soqa1"></em>
<sup id="soqa1"><rt id="soqa1"></rt></sup>
    1. <cite id="soqa1"><track id="soqa1"></track></cite><cite id="soqa1"></cite>
      av高清,丝袜性亚洲,天堂…中文在线最新版在线,AV在线不卡观看免费观看,精品日韩精品国产另类专区,亚洲色大成网站WWW永久男同,韩国无码AV片午夜福利,亚洲AV秘?片一区二区三区水牛

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

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

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

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

      比較了本機與服務器的環境,我知道問題肯定與SessionState有關.因為服務器用了Web Farm(并且將最大工作進程數設置成了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"
      />
      在服務器上,因為存在多個工作進程,所以需要將它的寫法改成 mode=StateServer了,否則就會造成前面所說的Session中的值不確定的現象.但是,如果簡單地這樣改一下,系統又報錯說對于以StateServer 或者 SqlServer兩種方式保存會話狀態,要求對象是可序列化的(大意如此)...所以我們還需要再將對象做一下可序列化聲明.

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

      [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;
      }


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


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


      編輯:三五互聯
      日期:2007-03-29

      收藏 】 【 打印 】   
      您可對文檔進行評分喲~

      勾選遇到的問題提交給我們,收到反饋后保證及時修正更新!

      提交反饋需要先登陸會員帳號

      上一篇:常見術語介紹
      下一篇:虛擬主機開啟URLrewrite功能的方法介紹
      若文檔內容對您沒有幫助,不能解決問題? 您還可以 咨詢在線客服提交工單搜索常見問題 ,我們將竭誠為您服務。
        >> 相關文章
       
      分享至:
      主站蜘蛛池模板: 2020久久国产综合精品swag| 国产三级国产精品国产专| 91视频观看| 四房播播成人网| 深夜福利在线看| xbox免费观看高清视频的软件| 无码人妻丝袜在线视频| 午夜免费视频| 久久久久久久波多野结衣高潮| 欧美性受xxxx白人性爽| 成人自拍小视频免费观看| 久久久久久久无码高潮| 成人污视频在线观看| 成年女人免费碰碰视频| 日韩大尺度一区二区三区| 国产人成乱码视频免费观看| 汉源县| 国产片AV国语在线观看手机版| 91视频网站免费观看| 日韩中文人妻| 在线看片福利无码网址| 亚州精品熟女在线| 免费无码肉片在线观看| 中文字幕在线视频不卡一区二区| 思思久久96热在精品国产10| 亚洲AV成人无码久久精品色欲 | 久久婷婷五月综合色首页| 97人妻天天爽夜夜爽二区| 国内精品视这里只有精品| 精品精品国产高清a毛片| 中国国产一级毛片视频| 国产精品一区二区中文| 亚洲人成网站在小说| 黄网站色视频免费观看| 人妻无码中文专区久久综合| 伊人日韩亚洲| 久9re热视频这里只有精品免费| 久久久久国色av免费看| 亚洲国产精品久久无套| 国产午夜无码精品免费看动漫| 看全色黄大黄大色免费久久|