问题是这样的,我做了个网站程序。开始用户登录不久一刷新Session就很快的丢失了。在网上查了很多解决的方法都没有解决,后来就用ASP.NET 状态服务,我启动了服务,修改了注册表。这个方法是有点效果。但是当我每第一次登录时还是会很快的就过期了,要登录第二次才正常。我不知道是什么原因,难道是第一次登录没有存进服务里面吗?在这里恳求高手指点,如何处里这个问题,或是有别的处理的方法。
  
是不是我的配置有问题  VS2010和ORACLE的数据库  <appSettings>
    <add key="connstring" value="Password=XXXXX;User ID=XXXXXXX;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXX)));" />
  </appSettings><sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="60"></sessionState>

解决方案 »

  1.   

    timeout="60"
    设置长一点你的用户是不是没有进行操作 然后才丢失的?
      

  2.   

    1。打开web.config文件,设置如下:
    <system.web> 
    <!--  会话状态设置
              默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
              如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
             若要禁用 Cookie,请设置 sessionState cookieless="true"。
        -->
        <sessionState 
                mode="StateServer"             //就是修改这里为“StateServer”
                stateConnectionString="tcpip=127.0.0.1:42424"
                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
                cookieless="false" 
                timeout="30" 
        />2。打开“控制面板--管理工具--服务”,找到ASP.NET State Service这个服务,将其设为自动启动。
      

  3.   

    timeout="60"应该是瞒长的了,但是有时不到2分钟就丢失了。ASP.NET State Service这个服务已经启动,注册表的AllowRemoteConnection也已经改了。我就查不出是什么原因。
    2楼的
    <sessionState  
      mode="StateServer" //就是修改这里为“StateServer”
      stateConnectionString="tcpip=127.0.0.1:42424"
      sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
      cookieless="false"  
      timeout="30"  
      />我试一试  先谢谢大家
      

  4.   

    如果用户不操作。 会出现session超时
    哎 理解为60秒了。
      

  5.   


    如果这样不行的话,你打开IIS找到你的网站,
    右键-》属性-》ASP.NET配置设置-》状态管理 里面可以设置会话超时时间。单位是分钟
      

  6.   

    我想请问一下wxr0323,如果是用户不操作造成的丢失,那为什么第二次登录后同样不操作40分钟后都没有问题呢。就是第一次登录不行。
     
      

  7.   

    登录保存session的代码大致如何写的?
      

  8.   


                        if (dwds.Tables[0].Rows.Count >0)
                        {
                            Session["acb205"] = this.username.Text.Trim();
                            Session["aab007"] = this.password.Text.Trim();
                            this.Response.Redirect("conter/index.aspx");
                        }
                        else