开发了一套B/S的系统,开发的时候没有发现什么问题;结果在客户那边一下就Session丢失(确切的说,一登录就丢失),这种丢失只发生在用主机名访问的情况,而且100%几率,但是用IP地址就没有问题!!!
   真的不知道该怎么解决了!!!

解决方案 »

  1.   

    session本来就容易丢,还是换cookie吧。
      

  2.   

    引用:“session本来就容易丢,还是换cookie吧。”
    cookie 是session的一种储存方式楼上这位仁兄是不是理解错了,只是一个在服务器上另外一个储存在本地文件。
      

  3.   

    I'm glad to hear it:)
      

  4.   

    不过,建议你还是使用Cookieless方式的session,即在web.config中进行下面的配置:    <!--  会话状态设置          默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。          如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。         若要禁用 Cookie,请设置 sessionState cookieless="true"。    -->
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="true" 
                timeout="480" 
        />
      

  5.   

    主机的名称竟然会导至COOKIE的丢失,下次装机器的时候还真要小心一点了呢.
      

  6.   

    可以存放到sqlserver找到这个文件
    c:\WINNT\Microsoft.NET\Framework\v1.0.2914\ InstallSqlState.sql
    这个文件,装入 sql server 
    2 修改 web.config ,大概象下面这样
    < sessionState mode="SQLServer" 
    sqlConnectionString="data source=
    WIN2000;userid= 
    sa;password=" cookieless= "false"timeout= 
    "20" />
      

  7.   

    之前Session信息存储在IIS中,不知为何Session会丢失信息。现在将Session信息存储在进程外,
    1、在Web.config文件中,将mode的值改为StateServer,
      <sessionState 
                mode="StateServer"
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="true" 
                timeout="10" 
        />
    2、启动ASP.NET State Service的服务,
    应用程序中的服务器错误。
    --------------------------------------------------------------------------------无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。