刚上线的网站session老丢失!!
网上查了一下,重新配置了一下session:
<sessionState mode=”StateServer” stateConnectionString=”tcpip=192.168.0.2:42424″ timeout=”20″ />
听说启用了  ASP.NET State Service 就可以 结果报错:
   无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。 请问你们一般是怎么解决这问题的??

解决方案 »

  1.   

    是不是asp.net state服务没开
      

  2.   

    是这样的嘛?右键点击“我的电脑”→ 管理 → 服务与应用程序 → 服务 → 双击“ASP.NET State Service” → 启动(可设为“自动”)
      

  3.   

    哦,原因是这样,用这个服务的话,他要序列化对象放到一个地方,但是你session中存储的类没有显式声明类可序列化:
    例如:protected void Page_Load(object sender, EventArgs e)
            {
                this.Session["f"] = new Test();
            }
            
            //在你要放到session的类上声明
            [Serializable]
            public class Test
            {
                public string str = "sdfsdfd";
            }