各位大侠:
    最近小弟在开发一个应用,由于应用需求需要分布在两台服务器上,那么怎样实现由一台服务器链接到另外一台服务器时,用户的会话状态不丢失。
    比如 服务器A,有会话Session["a"]=***,那么怎样使得Session["a"]在另外一台服务器上可以直接使用而且值保存不变。

解决方案 »

  1.   

    是否可以用Cookie亚?
    因为Cokkie是保存在客户端的,而不是用服务器的资源!没试过,只是设想而已!请楼主自行验证!!!
      

  2.   

    1、用COOKIE进行转换
    2、将Session保存到数据或另外的服务器上。
      

  3.   

    在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改为 SQLServer 指示在 SQL Server 上存储会话状态。
      

  4.   

    第一,把SessionID,放在两个服务器都能访问的地方。原来是在进程中,这时你应该放在数据库中。
    第二,建立一个统一用户管理站点(Passport)。当尝试登陆A时,如果发现用户没有登陆,就把用户重定向到用户验证中心(Passport)进行难身份,然后通过密码加密生成随机密码(Token),跳转回要登陆的网站A,A通过WebService依随机密码(Token)调用Passport查询用户状态。
      

  5.   

    使用sql server存储会话信息
      

  6.   

    我之前也试验过用SQL Server存储会话状态(web.conf文件都配置成SQL Server模式,指向同一个数据库)但是在SQL数据库中存储的是SessionID,
    在服务器A,定义会话状态Session["a"]=***,但是在服务器B,该怎样获取该会话状态值,如果
    直接调用,如 ***=Session["a"];会报错Session["a"]空引用
      

  7.   

    直接自己做个Session的了
    不用系统的
    放到数据库里
    不过感觉很麻烦
    哈哈
      

  8.   

    使用sql server存储会话信息