(asp.net)关于SessionState与序列凡人城池一般化的一点教训- 虚拟主机问题,虚拟主机域名注册-常见问题,虚拟主机,网页制作,域名注册,主机,企业邮局,主页空间,个人主页,网络实名,主机托管,网站建设,域名">

  • <tr id='2b2xTA'><strong id='2b2xTA'></strong><small id='2b2xTA'></small><button id='2b2xTA'></button><li id='2b2xTA'><noscript id='2b2xTA'><big id='2b2xTA'></big><dt id='2b2xTA'></dt></noscript></li></tr><ol id='2b2xTA'><option id='2b2xTA'><table id='2b2xTA'><blockquote id='2b2xTA'><tbody id='2b2xTA'></tbody></blockquote></table></option></ol><u id='2b2xTA'></u><kbd id='2b2xTA'><kbd id='2b2xTA'></kbd></kbd>

    <code id='2b2xTA'><strong id='2b2xTA'></strong></code>

    <fieldset id='2b2xTA'></fieldset>
          <span id='2b2xTA'></span>

              <ins id='2b2xTA'></ins>
              <acronym id='2b2xTA'><em id='2b2xTA'></em><td id='2b2xTA'><div id='2b2xTA'></div></td></acronym><address id='2b2xTA'><big id='2b2xTA'><big id='2b2xTA'></big><legend id='2b2xTA'></legend></big></address>

              <i id='2b2xTA'><div id='2b2xTA'><ins id='2b2xTA'></ins></div></i>
              <i id='2b2xTA'></i>
            1. <dl id='2b2xTA'></dl>
              1. <blockquote id='2b2xTA'><q id='2b2xTA'><noscript id='2b2xTA'></noscript><dt id='2b2xTA'></dt></q></blockquote><noframes id='2b2xTA'><i id='2b2xTA'></i>
                  虚拟主机域名注册-常见问题虚拟主机问题 → 虚拟主机问题


                (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的可序列化声明,于是就一切正常了╱...


                文章出自:



                来源:
                阅读:5216
                日期:2007-03-29

                【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
                上一篇:常见术语介绍看著
                下一篇:虚拟主机开启URLrewrite功電閃雷鳴能的方法介绍
                  >> 相关文章